LoopNet Commercial Listings Scraper
Pricing
from $5.50 / 1,000 results
LoopNet Commercial Listings Scraper
Collect LoopNet commercial real estate listings by market.
Pricing
from $5.50 / 1,000 results
Rating
0.0
(0)
Developer
String
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
LoopNet Scraper — commercial real estate for sale and for lease
This Actor scrapes LoopNet commercial real estate listings for any US market. Give it a market such
as austin-tx and the LoopNet Scraper returns around 25 listings per search with the asking
price, price per square foot, building size, property type, year built, the listing broker and the
full address.
No LoopNet account, login or cookies are used — this reads what a logged-out visitor sees. Every
property type on the market search comes back in one pass, named in propertyType.
What it returns
| Field | Type | Notes |
|---|---|---|
listingId | string | LoopNet's own listing ID — stable across runs, use it to de-duplicate |
title | string | The listing's headline, e.g. a building or property name |
address | string | Street address as the listing states it |
city, state, zipcode | string | Split, not one blob |
price | number | Whole-property asking price on a sale, e.g. 2750000 |
priceText | string | The figure exactly as LoopNet quotes it, including ranges |
pricePerSqft | number | Lease rate, which LoopNet quotes per square foot per year |
buildingSqft | number | Building size |
propertyType | string | LoopNet's own category, e.g. Office, Retail, Industrial |
yearBuilt | number | |
brokerName | string | Listing broker or brokerage where LoopNet names one |
detailUrl | string | Link to the LoopNet listing page |
searchLocation, sourceUrl, collectedAt | string | Provenance for every row |
A commercial listing often quotes a span — "$649,180 - $5,750,515", or "$12.00 - $14.00 SF/YR" —
because one listing covers several units. Any single number taken from a span would be invented, so
those rows keep the span in priceText and leave price and pricePerSqft null.
Input
{ "locations": ["austin-tx", "Dallas, TX"], "listingType": "for-sale", "maxItems": 1000 }
| Field | Description |
|---|---|
locations | LoopNet market slugs, e.g. "austin-tx". "Austin, TX" is normalised to the same slug. Required, 1–100. |
listingType | for-sale (default) or for-lease. |
maxItems | Cap on dataset items. Default 1000. Free plans stop at 250 requests and 250 results — see below. |
concurrency | Markets fetched in parallel. Default 2, maximum 5. |
Use cases
- Commercial market comps — asking price and price per square foot side by side with building size
- Sourcing acquisition targets by property type and year built across several markets
- Broker and brokerage lead lists, from
brokerNameon every listing - Lease-rate benchmarking per square foot within a submarket
- Tracking inventory and asking prices over time by re-running on a schedule
Reliability
The LoopNet Scraper reads each listing from the search page's own listing cards and joins LoopNet's schema.org listing data onto them by listing ID. The cards are the complete result set — the schema.org block omits portfolio listings — while the schema.org block is what names the listing broker, so neither source alone would produce the full field set.
A market that cannot be read is recorded in the run's SUMMARY under failures rather than silently
returning fewer rows, and a run where every market failed exits with an error.
There are no retries by design: the String Unblocker owns proxy rotation and anti-bot solver selection, so a retry loop here would only re-roll the same block.
Frequently asked questions
Do I need a LoopNet account, API key or cookies? No. The LoopNet Scraper reads the public LoopNet market search as a logged-out visitor, and never signs in.
How many listings does the LoopNet Scraper return per market? Around 25 — one LoopNet search page per market. Ten markets therefore return roughly 250 rows for ten requests.
Why is price sometimes null? Because the listing quotes a range rather than one figure, or
says "Contact for price". The quoted text is always kept in priceText.
Where do lease rates appear? In pricePerSqft, which is LoopNet's per-square-foot-per-year rate.
Sale listings put their whole-property figure in price instead.
Does it return coordinates? No. LoopNet's search cards carry city, state and ZIP code but no latitude or longitude, so those fields are not emitted rather than guessed.
Which countries does it support? The United States only. This Actor targets loopnet.com.
Limitations
One search page per market, so this is a market sampler rather than a full LoopNet crawl — run several markets to widen coverage. Photos, broker phone numbers and email addresses, lot size, coordinates, tenant details and the space-by-space availability breakdown of a multi-unit listing are out of scope.
Free plan limit
Runs started from an Apify free plan stop at 250 requests and 250 results, and the run
reports that it reached the limit. Any paid plan runs the full input and maxItems you set.
The limit exists because this Actor fetches through our own infrastructure, which Apify does not cover for free-plan runs. It binds on requests as well as results so that a large input list cannot spend those fetches for rows the run will not return.