LoopNet Scraper - Commercial Real Estate Listings avatar

LoopNet Scraper - Commercial Real Estate Listings

Pricing

from $1.30 / 1,000 listings

Go to Apify Store
LoopNet Scraper - Commercial Real Estate Listings

LoopNet Scraper - Commercial Real Estate Listings

[💰 $1.3 / 1K] Extract US commercial real estate listings from LoopNet - for sale, for lease, or at auction across 17 property types. Addresses, sale prices, per-SF lease rates, named brokers with profile links, zoning, lot size, Walk Score and photos, as clean JSON or CSV rows.

Pricing

from $1.30 / 1,000 listings

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Pull commercial real estate listings from LoopNet at scale — sale prices, per-square-foot lease rates, named brokers with profile links, zoning, lot size, and Walk Score in one clean dataset. Built for CRE brokers, acquisition analysts, and proptech teams who need current US inventory without building and maintaining their own scraper.

Office, industrial, retail, multifamily, land and twelve more categories, for sale, for lease, or at auction. Pick a market and a category, or paste a search URL, and get structured rows back.

Why This Scraper?

  • 17 property-type categories, and the one you pick is the one you get — office, industrial, retail, flex, land, multifamily, hotel & hospitality, health care, medical office, restaurant, laboratory, shopping center, warehouse, self-storage, specialty, and coworking, each resolved to the right LoopNet category for the listing type you chose. Measured on Hyattsville, MD, for lease: 58 listings unfiltered narrow to 16 office, 17 industrial, 23 retail, 5 land, 4 flex, 3 medical office, 1 coworking — never a silently widened all-categories search.
  • Sale prices and per-square-foot lease rates never land in the same column — LoopNet publishes both under one price key. Here they are salePrice (a whole-property USD total) and leaseRate (per square foot per year, with the site's own unit label alongside it). Measured across 331 listings in five metros: 168 sale prices from $92,900 up, 78 lease rates between $3.00 and $80.00/SF/YR, zero overlap. A $16.00/SF office lease can never contaminate your sale-price averages.
  • Named brokers with profile links on 100% of listings with full details on — measured across 100 detail records: every one carried at least one broker, and 53 carried more than one (up to 8 on a single listing). Name, brokerage, and LoopNet profile URL stay grouped per broker, so on a multi-broker listing you still know who works where.
  • 52 distinct property facts, as LoopNet publishes them — measured across 100 detail records: Walk Score on 95, Property Type on 88, Amenities on 73, Building Class on 65, Year Built on 61, Rentable Building Area on 51, Zoning on 38, Lot Size on 33, Cap Rate on 14 — plus price per unit, parking ratio, number of stories, opportunity-zone flag, and sale type.
  • Auctions are a first-class listing type — for sale, for lease, and auction are three separate inventories, not one list with a badge: measured in Houston, for-sale and for-lease share none of the first 21 and 25 rows, and auction was a distinct 117-listing set nationwide the day it was measured. Auction rows carry a closing time on every row and their reserve figure with full details on — neither exists on an ordinary listing.
  • Full street address, city, state, and ZIP on 95 of every 100 enriched listings — search rows carry one address line; enriched rows break it into components, with the ZIP kept as text so a leading-zero code like 01960 survives the export instead of arriving as 1960.
  • Prices stay honest when the source is not — 24 of 78 priced lease rows quote a band ("$20.00 - $60.00 SF/YR") and report no single figure rather than an invented midpoint. The 6 sale rows in 168 where LoopNet glues both ends of a price range into one 13-digit number are dropped from salePrice instead of shipping a $9.45 trillion listing. The published string survives verbatim in priceText and summary either way, so nothing is lost.
  • 33 fields per listing, and 100 listings in about 22 seconds — 12 fields on every search row, 21 more when full details are on. A 707-listing New York sweep finished in 72 seconds.

Use Cases

Investment & Acquisition

  • Screen a market on cap rate, price per unit, and price per SF straight from the published property facts
  • Build a buy box on building class, year built, lot size, and zoning
  • Track auction inventory and closing times to plan bidding
  • Flag opportunity-zone assets from the facts LoopNet already tags

Brokerage & Comparables

  • Assemble sale comparables by sub-market with building size, sale type, and cap rate attached
  • Benchmark asking rents per square foot by property type before pricing a new listing
  • Diff runs on the last-updated date to catch re-priced and refreshed inventory
  • Pull the full marketing description and photo for a pitch deck in one pass

Lead Generation

  • Build broker and brokerage lists by market, property type, and listing volume
  • Identify the firms holding the deepest inventory in a target sub-market
  • Route new listings to the right desk using the brokerage on every row
  • Prospect the brokerages behind a specific asset class — medical office, self-storage, laboratory

Market Research & Analytics

  • Measure inventory mix across metros — office versus industrial versus retail
  • Compare per-SF asking rents across states and sub-markets on a like-for-like unit
  • Test walkability against asking rent using Walk Score on 95 of every 100 enriched listings
  • Track how much of a market withholds its price, by category and by metro

Data Enrichment & Integration

  • Enrich an internal CRE database with addresses, ZIP codes, photos, and descriptions
  • Power a listings UI with a fresh commercial inventory feed
  • Push rows into Google Sheets, a warehouse, or a CRM through the Apify API and webhooks
  • Attach broker profile links to records you already hold, without a second lookup

Getting Started

Simplest run

{
"propertyType": "commercial-real-estate",
"location": "houston-tx",
"transactionType": "for-sale",
"maxItems": 100
}

Paste a filtered search URL from the site

Set your filters on the site, then copy the address bar URL — every filter in it is carried through.

{
"searchUrls": [
"https://www.loopnet.com/search/commercial-real-estate/houston-tx/for-sale/"
],
"maxItems": 750
}

Everything, with full details

{
"searchUrls": [
"https://www.loopnet.com/search/commercial-real-estate/houston-tx/for-sale/"
],
"maxItems": 750,
"enrichDetails": true
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchUrlsarrayLoopNet search-result URLs, e.g. https://www.loopnet.com/search/office-space/houston-tx/for-lease/. Any /search/
locationstringhouston-txArea to search. Used only when Search URLs is empty.
transactionTypestringfor-saleFor sale, for lease, or auction. Used only when Search URLs is empty -- a pasted URL already carries its own /for-sale/, /for-lease/ or /auctions/ segment. Measured on houston-tx: the three return completely different listings (for-sale and for-lease share 0 of 21/25 rows on page 1), and auctions is a genuinely separate, much smaller inventory (3 in Houston, 117 nationwide).
propertyTypestringcommercial-real-estateNarrow to one LoopNet property category. Measured on a market small enough to report a real total (Hyattsville, MD, for lease): 58 listings unfiltered becomes 16 office, 17 industrial, 23 retail, 5 land, 4 flex, 4 laboratory, 3 medical office, 3 restaurant, 1 coworking. Some categories only exist on one listing type and say so in their name -- picking a for-sale-only category with Listing type "For lease" stops the run with a message instead of quietly searching every property type.
maxItemsinteger100Maximum listings per search URL (0 = collect everything each search returns). Loopnet.com pages through at most 750 listings per search, so use several narrower searches to collect more.

Options

ParameterTypeDefaultDescription
enrichDetailsbooleanfalseAdd 21 extra fields per listing. Adds one request per listing and is billed at the higher rate.
concurrencyinteger8How many requests to run in parallel. Lower this if you see failures.
proxyConfigurationobjectApify ProxyProxy settings for the run.

Output

Every listing is one dataset row. Enabling enrichDetails adds 21 further fields to the same row — there is no second record type to join. Fields with no value are left off the row entirely, so a for-sale listing carries salePrice and no leaseRate, and a for-lease listing the other way round.

This is a real listing, trimmed to 8 of its 17 property facts. The two brokers' names, photos, and profile links are replaced with placeholders — your dataset carries the published values.

{
"url": "https://www.loopnet.com/Listing/6610-6618-S-Kenwood-Ave-Chicago-IL/41425953/",
"name": "6610-6618 S Kenwood Ave, Chicago, IL 60637",
"summary": "27,600 SF Multifamily Building Offered at $6,950,000 at a 7.27% Cap Rate in Chicago, IL 60637",
"transactionType": "For Sale",
"imageUrl": "https://images1.loopnet.com/i2/nKvJluRIW16ZcBbtHszu-39Tyy6kPUX8MHlu2rue2mk/106/multifamily-property-for-sale-6610-6618-s-kenwood-ave-chicago-il-60637.jpg",
"priceText": "6950000",
"salePrice": 6950000,
"brokerName": "A. Reyes",
"brokerageName": "Kiser Group",
"searchRank": 17,
"headline": "6610-6618 S Kenwood Ave",
"fullDescription": "Kiser group is pleased to exclusively present for purchase 6610 S. Kenwood, a rarely available thirty-five (35) unit, center entrance courtyard in Chicago's East Woodlawn neighborhood.",
"propertyFacts": [
{ "name": "Price", "value": ["$6,950,000"], "@type": "PropertyValue" },
{ "name": "Price Per Unit", "value": ["$198,571"], "@type": "PropertyValue" },
{ "name": "Cap Rate", "value": ["7.27%"], "@type": "PropertyValue" },
{ "name": "No. Units", "value": ["35"], "@type": "PropertyValue" },
{ "name": "Property Type", "value": ["Multifamily"], "@type": "PropertyValue" },
{ "name": "Building Class", "value": ["C"], "@type": "PropertyValue" },
{ "name": "Lot Size", "value": ["0.38 AC"], "@type": "PropertyValue" },
{ "name": "Year Built", "value": ["1924"], "@type": "PropertyValue" },
{ "name": "Zoning", "value": ["RM-5"], "@type": "PropertyValue" },
{ "name": "Walk Score", "value": 60, "@type": "PropertyValue" }
],
"streetAddress": "6610-6618 S Kenwood Ave",
"city": "Chicago",
"state": "IL",
"postalCode": "60637",
"country": "US",
"detailPriceText": "6950000",
"brokers": [
{
"name": "A. Reyes",
"memberOf": { "name": "Kiser Group", "@type": "Organization" },
"address": { "addressLocality": "Chicago", "addressRegion": "IL", "@type": "PostalAddress" },
"@id": "https://www.loopnet.com/commercial-real-estate-brokers/profile/a-reyes/0000aaaa/41425953#RealEstateAgent",
"@type": "RealEstateAgent"
},
{
"name": "M. Doyle",
"memberOf": { "name": "Kiser Group", "@type": "Organization" },
"address": { "addressLocality": "Chicago", "addressRegion": "IL", "@type": "PostalAddress" },
"@id": "https://www.loopnet.com/commercial-real-estate-brokers/profile/m-doyle/0000bbbb/41425953#RealEstateAgent",
"@type": "RealEstateAgent"
}
],
"brokerNames": ["A. Reyes", "M. Doyle"],
"brokerageNames": ["Kiser Group", "Kiser Group"],
"brokerProfileUrls": [
"https://www.loopnet.com/commercial-real-estate-brokers/profile/a-reyes/0000aaaa/41425953#RealEstateAgent",
"https://www.loopnet.com/commercial-real-estate-brokers/profile/m-doyle/0000bbbb/41425953#RealEstateAgent"
],
"heroImageUrl": "https://images1.loopnet.com/i2/nKvJluRIW16ZcBbtHszu-39Tyy6kPUX8MHlu2rue2mk/112/image.jpg",
"heroImageCaption": "6610-6618 S Kenwood Ave",
"lastUpdated": "2026-07-30T00:00:00",
"categoryUrls": [
"https://www.loopnet.com/search/apartment-buildings/chicago-il/for-sale/#CollectionPage",
"https://www.loopnet.com/search/apartment-buildings/il/for-sale/#CollectionPage",
"https://www.loopnet.com/search/apartment-buildings/usa/for-sale/#CollectionPage"
]
}

Core Fields

FieldTypeDescription
urlstringListing URL
namestringAddress / Listing Name
summarystringListing Summary
transactionTypestringTransaction Type

Price, Broker & Media

FieldTypeDescription
priceTextstringPrice (as shown)
salePricenumberSale Price (USD)
leaseRatenumberLease Rate ($/SF/YR)
brokerNamestringListing Broker
brokerageNamestringBrokerage
imageUrlstringPrimary Photo
searchRanknumberSearch Result Rank
auctionEndsAtstringAuction Ends

With enrichDetails — Description & Property Facts

FieldTypeDescription
headlinestringFull Listing Title
fullDescriptionstringFull Description
propertyFactsarrayProperty Facts — name/value pairs as published: Walk Score, Property Type, Amenities, Building Class, Year Built, Zoning, Lot Size, Cap Rate and up to 52 named entries in total

With enrichDetails — Address

FieldTypeDescription
streetAddressstringStreet Address
citystringCity
statestringState
postalCodestringZIP Code
countrystringCountry

With enrichDetails — Price & Brokers

FieldTypeDescription
detailPriceTextstringDetail Page Price (as shown)
leaseRateUnitstringLease Rate Unit
auctionPricenumberAuction Price
brokersarrayBrokers — one entry per broker with name, brokerage, office city and state, profile URL and photo
brokerNamesarrayBroker Names
brokerageNamesarrayBrokerage Names
brokerProfileUrlsarrayBroker Profile URLs

With enrichDetails — Media & Dates

FieldTypeDescription
heroImageUrlstringHero Photo
heroImageCaptionstringHero Photo Caption
videoUrlsarrayVideo / 3D Tour URLs
videoThumbnailsarrayVideo Thumbnails
lastUpdatedstringLast Updated
categoryUrlsarrayLoopNet Category Pages

Tips for Best Results

  • Plan around the 750-per-search ceiling — LoopNet pages through at most 750 listings for any single search, however many match. A New York for-sale sweep returns about 700 rows and stops cleanly. To collect more, split the market by property type or sub-market and paste every URL into searchUrls; the run de-duplicates across them, so a listing matching two searches is collected and billed once.
  • Narrow by property type to reach inventory a broad search cannot — a citywide search hits the ceiling long before the market runs out, but the same city split into office, industrial, retail, and land returns each category's own full set. This is the single most effective way to get complete coverage of a large metro.
  • Filter on the site first, then paste the URL — price band, size, sub-market, and category are all encoded in the address bar and carried through. Drop any ?sk= token from a saved search: that token is tied to your own LoopNet login, so the search would come back wider than the one you saved.
  • Read propertyFacts by name, never by position — it is a list of name/value pairs and the order changes from listing to listing. value is usually a list of strings, a bare number for Walk Score, and a bare string on auction rows, so handle all three shapes when you flatten it into columns.
  • Turn on enrichDetails for anything contact, spec, or location related — brokers with profile links, zoning, lot size, year built, Walk Score, the full marketing description, and the broken-out street address and ZIP only exist on the detail record. Leave it off for a fast price-and-address sweep at the lower rate.
  • Treat a missing salePrice as meaningful, not broken — about a quarter of search rows carry no price at all, and lease rows quoting a range deliberately report no single number. priceText and summary still carry LoopNet's published wording verbatim ("Offered at $945,000 - $2,370,000"), so read those when you need the range.
  • Auction rows are shaped differently on purpose — they carry no broker and no price at search level. Their deadline arrives in auctionEndsAt on every row, and their figure in auctionPrice once full details are on.

Pricing

From $1.30 per 1,000 results (search only) or from $2.30 per 1,000 results (with full details).

ResultsSearch OnlyWith Full Details
100$0.13$0.23
1,000$1.30$2.30
10,000$13.00$23.00
100,000$130.00$230.00

Those are the rates on Gold and above. Higher-volume plans pay less per result:

Your Apify planSearch OnlyWith Full Details
No discount$1.55$2.75
Bronze$1.45$2.60
Silver$1.40$2.45
Gold and above$1.30$2.30

Per 1,000 results.

A "result" is any listing row in the output dataset. When you run several searches at once, a listing matching more than one of them is de-duplicated before it reaches the dataset, so you are never charged twice for the same listing. The full-details rate applies only to rows that actually came back enriched — if a listing's detail record is unavailable, the row is still delivered and charged at the search-only rate. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to Loopnet.com or its operators in any way. All trademarks belong to their respective owners.

This actor is intended for legitimate market research and analytics. You are responsible for complying with applicable laws and with Loopnet.com's Terms of Service.

Results may include personal data such as broker names, profile links, and contact details. Treat them accordingly: do not use them for spam, harassment, or any unlawful purpose, and follow applicable privacy rules when storing or processing them. Property listings may also be subject to fair-housing rules — do not use this data to discriminate in the sale, rental, or financing of housing.