Home / Tools / LoopNet + Crexi Scraper

LoopNet and Crexi scraper: one clean CRE market file
kazkn/commercial-real-estate-brokerage-intel
Pulls public commercial real estate listings from LoopNet and Crexi, merges them, removes listings that appear on both, and normalizes price, size and cap rate. Built for brokers, acquisition teams and analysts who rebuild the same market spreadsheet every week.
What you get
| Field | What it contains |
|---|---|
source | loopnet or crexi |
listing_url | Link to the public listing |
also_listed_on | The other platform when the same property appears on both |
market | City and state of the search |
address | Full street address |
asset_class | Office, retail, industrial, multifamily and more |
sub_type | Finer property type, such as loft or creative space |
building_size_sqft | Building size in square feet |
asking_price_or_rent | Asking price or rent as shown by the source |
noi | Net operating income when the listing declares it |
cap_rate | Listed cap rate, or one computed from declared NOI and price |
price_per_sqft | Price per square foot |
days_on_market | Days on market when the source shows it |
broker_name | Listing broker, when public |
broker_company | Brokerage firm |
broker_phone | Public phone, or marked as not publicly discoverable |
Download as JSON, CSV or Excel, or read the rows through the Apify API.
What people use it for
Weekly market file for one city
Run Dallas, office and industrial, sale only, every Monday. You get one deduplicated sheet with price, size and cap rate side by side instead of two browser tabs and a copy-paste session.
Cap rate screening
Filter by minimum cap rate and asset class, then sort the export. Rows where the cap rate is computed from declared NOI are flagged, so you know which numbers came straight from the listing.
Broker outreach list
Turn on detail enrichment to collect the public broker name, company and contact fields, in separate columns, ready to review before outreach.
Who it is for
- Brokers who track a market across LoopNet and Crexi without copying listings by hand
- Acquisition teams screening deals by cap rate, price and asset class
- Analysts building comparable-listing files for underwriting
- Lenders and investors watching inventory and days on market in target cities
- Data teams feeding CRE listings into a CRM, Google Sheets or a warehouse
How to run it
- Open the actor on Apify and sign in (the free plan works).
- Choose manual mode (state, city, asset classes, sale or lease, price and cap rate filters) or paste LoopNet and Crexi search URLs.
- Set the maximum results per source.
- Start the run and watch rows arrive in the Output tab.
- Export to CSV, Excel or JSON, or pull the dataset through the Apify API.
Run it from your code
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("kazkn/commercial-real-estate-brokerage-intel").call(run_input={"city": "Dallas", "state": "TX", "maxResultsPerSource": 100})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });
const run = await client.actor("kazkn/commercial-real-estate-brokerage-intel").call({"city": "Dallas", "state": "TX", "maxResultsPerSource": 100});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);curl -X POST "https://api.apify.com/v2/acts/kazkn~commercial-real-estate-brokerage-intel/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"city": "Dallas", "state": "TX", "maxResultsPerSource": 100}'Your token is in Apify Console, under Settings, API & Integrations. The input above is the example from the tool's input form.
Questions
Is it allowed to scrape LoopNet and Crexi?
The actor only reads listings that are publicly visible without an account. You are responsible for how you use the data, in line with the sites' terms and the law that applies to you.
How are duplicates between LoopNet and Crexi handled?
When the same property appears on both platforms, the actor keeps one primary record and names the other platform in also_listed_on.
How is the cap rate calculated?
It uses the cap rate the listing shows. When only NOI and asking price are declared, it computes a comparable rate from those two values.
Does it return broker emails and phone numbers?
Only when they are published on the listing or its public detail page. Otherwise the field says it is not publicly discoverable; nothing is guessed.
How does pricing work?
You pay per result through your Apify account. The current price per 1,000 results is shown on the Apify page.
Can I search outside the United States?
Manual mode covers U.S. markets. In URL mode you can paste LoopNet or Crexi search URLs from any market those sites cover.
Other tools

Vinted Smart Scraper
kazkn/vinted-smart-scraper
Vinted Smart Scraper pulls public Vinted listings, seller profiles and price data from 26 country sites, from vinted.fr and vinted.de to vinted.co.uk and vinted.com, into structured rows.

Vinted Turbo Scraper
kazkn/vinted-turbo-scraper
Vinted Turbo Scraper reads the Vinted pages you point it at (searches, brand and category pages, seller wardrobes or single items) and returns each listing as a structured row with price, brand, size, condition, photos and seller.

Vestiaire Collective Scraper
kazkn/vestiaire-collective-smart-scraper
This Apify actor collects public Vestiaire Collective listings and sold-search results, with price, currency, condition, brand, model, images and seller country for each item.

Crexi Scraper for Commercial Real Estate
kazkn/crexi-search-actor
Turns a Crexi market search or listing URL into structured rows with asking terms, property facts, cap rate and source links.