LoopNet logoCrexi logo

Property & travel · Coming soon

LoopNet and Crexi Scraper: Commercial Real Estate

Get US commercial property listings from Crexi and LoopNet in one table. Each row has price, size, address, coordinates and broker company. Sale, lease and auction listings are covered.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

listingId2749151
sitecrexi
purposesale

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: crexi in Site. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Give this Actor a US place and it returns commercial property listings from Crexi and LoopNet in one table: price, cap rate, size, address, coordinates and broker company. You need no login and no account on these sites.

  • It reads Crexi, LoopNet or both in one run.
  • It covers listings for sale, for lease and at auction.
  • It filters by price, size, cap rate, lot, year built, units, rent, keyword and date.
  • It can also read each listing page for more fields, such as cap rate, NOI, year built and zoning.
  • It saves the broker company. It has no fields for people's contacts, and it removes emails and phone numbers in common formats from listing text.

Good for

  • You watch a US market and want new listings in a table.
  • You compare asking prices and price per square foot across sites.
  • You need a list of properties with coordinates for a map or a model.

Who uses it

Market watchers

Get new listings for a US market in a table.

Investors

Compare asking prices and price per square foot across sites.

Analysts

Build a list of properties with coordinates for a map or model.

Price

Prices will be shown after release.

Questions

Do I need a login on Crexi or LoopNet?

No. The tool reads public pages only. You need only an Apify account.

Does it give broker names, phones or emails?

No. It saves the broker company only.

Why is capRate empty in some rows?

On Crexi it needs a login. On LoopNet many listings do not show it on the search page.

Why does a run with no results cost money?

A run start is always charged. On LoopNet, each page read is charged too, because filters are applied after the page is read. Set a Max charge if you use narrow filters.

How complete and how fresh are the rows?

The rows show what the site showed at fetchedAt. A field is null when the site does not show it. In one test on 300 LoopNet sale rows, 284 had a price and 41 had a cap rate from search pages only.

Which site should I start with?

Start with Crexi for most cases: a run is faster and cheaper, and you get price, size and coordinates in most rows. Use LoopNet for cap rate, year built and lot size on search pages, and for lease rates.

Details

Step by step on Apify
  1. In Site, keep Crexi (box 1).
  2. In Purpose, keep For sale (box 2).
  3. In Location, keep Phoenix, AZ or type your own US place (box 3).
  4. In Max listings, keep 10 (box 4).
  5. Click Start, wait for the run to end and open the Output tab.
Use cases
TaskInputYou getKey fieldsNext step
Find properties for sale in a marketsite, purpose: sale, locationListingprice, pricePerSqft, capRate, addressSheet or CRM
Compare lease rates in a citypurpose: lease, location, propertyTypeListingrentPerSqftYearMin, rentPerSqftYearMax, sqftMin, sqftMaxSheet or BI tool
Watch new deals by schedulesite: crexi, listedWithinDays, sort: newestListinglistingId, activatedOn, price, urlApify schedule, Slack or Notion
Screen investment dealsminCapRate, includeDetails: trueListing with detailscapRate, noi, yearBuilt, zoningFinancial model
Refresh a list of known listingsstartUrlsOne listing per linkstatus, price, listingStatusYour database
Tips for better results
  • Start with Crexi. It is faster and cheaper than LoopNet.
  • Crexi cap rate and NOI need a login, so they stay empty. Use LoopNet with listing pages for them.
  • A search shows up to 1,500 listings on Crexi and 750 on LoopNet. Split by city or type for more.
Limits and good to know
  • One run: up to 1,500 listings. To get more, start several runs
  • One search: Crexi shows up to 1,500 listings and LoopNet shows up to 750. To get more, split the search by city or by type. The run tells you with SOURCE_CAP when a search was cut
  • Time: the default timeout is 300 seconds. In our tests, 700 to 1,500 Crexi rows took 9 to 17 seconds. 750 LoopNet rows took 141 to 195 seconds. Over 1,300 LoopNet rows from three places took about 280 seconds, and one such run reached the time limit at 1,350 rows. For the largest LoopNet runs, raise the timeout to 600 seconds
  • Listing pages: 100 LoopNet listings with includeDetails took 247 seconds. For more than 100, raise the timeout
  • Narrow LoopNet filters over many places: a run with 20 places and a filter that matched nothing reached the 300-second limit, failed with DEADLINE and read 61 pages. Use fewer places or filters that match
  • Crexi fields: capRate, NOI and year built need a Crexi login, so they stay null. Lot size comes only from listing pages. Crexi links have no broker company
  • Links: a Crexi search link is not read, and it saves an error row. Use a place or links to single listings
  • LoopNet fields: search pages do not show every field. A LoopNet search page has no price on auction listings. Read listing pages to get more

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "listingId": "2749151",
  "site": "crexi",
  "purpose": "sale",
  "status": "complete",
  "title": "Jiffy Lube",
  "price": 2323000,
  "pricePerSqft": 795.55,
  "pricePerSqftBasis": "computed",
  "capRate": null,
  "propertyType": "Retail",
  "buildingSqft": 2920,
  "lotSize": null,
  "address": "4848 East Warner Road, Phoenix, Maricopa County, AZ 85044",
  "lat": 33.3316876,
  "lng": -111.9793332,
  "broker": "Matthews",
  "url": "https://www.crexi.com/properties/2749151/arizona-jiffy-lube",
  "source": "api.crexi.com/assets/search",
  "fetchedAt": "2026-11-07T09:29:31.606Z"
}
Data fields (40)
FieldTypeMeaning
listingIdstringListing ID on the source site. Empty on service rows.
sitestringSource site.
purposestringsale, lease or auction. Empty when a LoopNet page does not say.
statusstringcomplete: all fields of the chosen route. partial: the detail page failed, search fields are kept. not_found: the search or link has nothing. error: this search or link failed or cannot run.
statusReasonstringWhy a row is not complete.
errorCodestringMachine-readable error, for example SOURCE_BLOCKED or UNSUPPORTED_FILTER.
titlestringListing title.
pricenumberAsking price in USD. Empty when the listing shows none: empty never means zero.
priceTextstringPrice as the source shows it when it is not one number, for example a range, a rent or Unpriced.
pricePerSqftnumberPrice per square foot in USD.
pricePerSqftBasisstringsource: shown by the site. computed: price divided by building size.
capRatenumberCap rate in percent, for example 6.5.
propertyTypestringProperty type as the source names it.
propertySubTypestringProperty subtype as the source names it.
buildingSqftnumberBuilding size in square feet.
sqftMinnumberSmallest space for lease in square feet.
sqftMaxnumberLargest space for lease in square feet.
rentPerSqftYearMinnumberLowest rent in USD per square foot per year.
rentPerSqftYearMaxnumberHighest rent in USD per square foot per year.
rentTypestringRent basis as the source names it.
lotSizenumberLot size in acres.
unitsnumberNumber of units.
spacesnumberNumber of spaces or suites for lease.
propertiesnumberNumber of properties in a portfolio listing.
yearBuiltnumberYear built.
addressstringAddress as shown.
citystringCity.
statestringUS state code.
zipstringZIP code.
latnumberLatitude.
lngnumberLongitude.
brokerstringBrokerage company from the listing. The dataset has no fields for people's contacts.
urlstringListing page.
imageUrlstringMain photo.
imageUrlsarrayPhotos found on the page used.
descriptionstringListing description.
listingStatusstringListing status on Crexi, for example On-Market or Auction.
activatedOnstringDate the listing went live on Crexi.
noinumberNet operating income in USD.
zoningstringZoning.
Input settings (25)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Sitesitestring"crexi"
Purposepurposestring"sale"
Locationlocationstring"Phoenix, AZ"
Property typepropertyTypestring"any"
Max listingsmaxItemsinteger10
Open each listing pageincludeDetailsbooleanfalse
More locationslocationsarray
LinksstartUrlsarray
Min price, USDminPricenumber
Max price, USDmaxPricenumber
Min size, sq ftminSqftnumber
Max size, sq ftmaxSqftnumber
Min cap rate, %minCapRatenumber
Max cap rate, %maxCapRatenumber
Min lot, acresminLotAcresnumber
Max lot, acresmaxLotAcresnumber
Built fromminYearBuiltinteger
Built untilmaxYearBuiltinteger
Min unitsminUnitsinteger
Max unitsmaxUnitsinteger
Min rent, USD per sq ft per yearminRentPerSqftnumber
Max rent, USD per sq ft per yearmaxRentPerSqftnumber
Keywordkeywordstring
Include listings with no priceincludeUnpricedbooleantrue
Listed in the last dayslistedWithinDaysinteger

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure