LoopNet Scraper - Commercial Real Estate Listings
Pricing
from $1.30 / 1,000 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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) andleaseRate(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
salePriceinstead of shipping a $9.45 trillion listing. The published string survives verbatim inpriceTextandsummaryeither 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
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | array | — | LoopNet search-result URLs, e.g. https://www.loopnet.com/search/office-space/houston-tx/for-lease/. Any /search/ |
location | string | houston-tx | Area to search. Used only when Search URLs is empty. |
transactionType | string | for-sale | For 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). |
propertyType | string | commercial-real-estate | Narrow 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. |
maxItems | integer | 100 | Maximum 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
| Parameter | Type | Default | Description |
|---|---|---|---|
enrichDetails | boolean | false | Add 21 extra fields per listing. Adds one request per listing and is billed at the higher rate. |
concurrency | integer | 8 | How many requests to run in parallel. Lower this if you see failures. |
proxyConfiguration | object | Apify Proxy | Proxy 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
| Field | Type | Description |
|---|---|---|
url | string | Listing URL |
name | string | Address / Listing Name |
summary | string | Listing Summary |
transactionType | string | Transaction Type |
Price, Broker & Media
| Field | Type | Description |
|---|---|---|
priceText | string | Price (as shown) |
salePrice | number | Sale Price (USD) |
leaseRate | number | Lease Rate ($/SF/YR) |
brokerName | string | Listing Broker |
brokerageName | string | Brokerage |
imageUrl | string | Primary Photo |
searchRank | number | Search Result Rank |
auctionEndsAt | string | Auction Ends |
With enrichDetails — Description & Property Facts
| Field | Type | Description |
|---|---|---|
headline | string | Full Listing Title |
fullDescription | string | Full Description |
propertyFacts | array | Property 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
| Field | Type | Description |
|---|---|---|
streetAddress | string | Street Address |
city | string | City |
state | string | State |
postalCode | string | ZIP Code |
country | string | Country |
With enrichDetails — Price & Brokers
| Field | Type | Description |
|---|---|---|
detailPriceText | string | Detail Page Price (as shown) |
leaseRateUnit | string | Lease Rate Unit |
auctionPrice | number | Auction Price |
brokers | array | Brokers — one entry per broker with name, brokerage, office city and state, profile URL and photo |
brokerNames | array | Broker Names |
brokerageNames | array | Brokerage Names |
brokerProfileUrls | array | Broker Profile URLs |
With enrichDetails — Media & Dates
| Field | Type | Description |
|---|---|---|
heroImageUrl | string | Hero Photo |
heroImageCaption | string | Hero Photo Caption |
videoUrls | array | Video / 3D Tour URLs |
videoThumbnails | array | Video Thumbnails |
lastUpdated | string | Last Updated |
categoryUrls | array | LoopNet 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
propertyFactsby name, never by position — it is a list of name/value pairs and the order changes from listing to listing.valueis 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
enrichDetailsfor 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
salePriceas 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.priceTextandsummarystill 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
auctionEndsAton every row, and their figure inauctionPriceonce 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).
| Results | Search Only | With 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 plan | Search Only | With 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
Legal & Ethical Use
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.