Crexi.com - US Commercial Real Estate Listings
Pricing
from $5.00 / 1,000 results
Crexi.com - US Commercial Real Estate Listings
Scrape US commercial real estate for sale on Crexi: asking price, $/sq ft, size, type, tenants, address + lat/lng, opportunity zone, auction status, photos, broker contacts. Filter by state, city, zip, type, price, cap rate, size, lease type, tenant.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Swerve
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Crexi Scraper - US Commercial Real Estate Listings
Extract every commercial property for sale on Crexi, the second-largest US commercial real estate marketplace (~245,000 active listings). One run returns asking price, size, price per sq ft, property type, tenants, exact address with coordinates, opportunity-zone flag, auction status, photos, and the listing brokers with phone and license - as JSON, CSV, Excel, or through the API.
No Crexi login is needed. Leave every filter empty to sweep the whole US market; the actor shards large searches automatically so nothing is skipped.
What you get
| Field | Example |
|---|---|
name, headline | "Iroquois Manor Shopping Center", "Grocery Store Anchored" |
propertyTypes, subtypes | ["Retail"], ["Strip Center"] |
askingPrice, pricePerSqft, squareFootage, lotSizeAcres | 2000000, 14.85, 134699, 12.4 |
status, isAuction, offersDueOn | "Auction", true, "2026-09-30T16:00:00Z" |
address, city, county, state, zip, latitude, longitude | "5300 S 3rd St", "Louisville", "Jefferson County", "KY", "40214", 38.171, -85.768 |
tenants, investmentType, leaseType, tenancy | ["Kroger"], "Net Lease", "NNN", "Multi" |
brokerageName, brokers[] | "Mid-America Real Estate", [{ name, title, brokerage, phone, licenseNumber, licenseState, profileUrl }] |
description, investmentHighlights[], images[] | full text, bullets, full-size photo URLs |
isInOpportunityZone, hasOfferingMemorandum, hasVideo | true / false |
activatedOn, updatedOn | ISO timestamps |
See the Output tab for the complete field list with descriptions.
Input
| Field | What it does |
|---|---|
states, cities, zips, counties | Geography. Combine freely, e.g. states: ["TX"], cities: ["Austin"]. |
propertyTypes | Retail, Office, Industrial, Multifamily, Land, Hospitality, Mixed Use, Self Storage, Mobile Home Park, Senior Living, Special Purpose, Business for Sale, Note/Loan. |
minPrice / maxPrice, includeUnpriced | Asking-price band. About 13% of listings have no published price. |
minCapRate / maxCapRate, minOccupancy | Financial filters (applied by Crexi even though the values themselves are hidden from anonymous visitors - see below). |
minSqft / maxSqft, minPricePerSqft / maxPricePerSqft | Size and unit-price bands. |
tenants, tenancy, leaseTypes, opportunityZoneOnly | Investment filters, e.g. tenants: ["Dollar General"], leaseTypes: ["NNN"]. |
listingStatus | active (on-market + auctions) or underContract. |
updatedSince | e.g. 2026-09-01 - only listings the broker touched since then. Ideal for daily delta runs. |
sortBy, sortDescending | Crexi relevance, recently updated, recently listed, price, cap rate. |
maxItems | Optional cost cap. Blank = everything that matches. |
enrichDetails | Default on. Fetches the detail page, photo gallery and broker roster for every listing (3 extra requests each). Turn off for a fast price/location sweep. |
proxyConfig | Apify datacenter proxy by default - Crexi's API accepts it, so runs are cheap. |
Example: every NNN retail deal in Texas over $1M
{"states": ["TX"],"propertyTypes": ["Retail"],"leaseTypes": ["NNN"],"minPrice": 1000000}
Example: daily feed of new listings nationwide (no enrichment, fast)
{"updatedSince": "2026-09-01","sortBy": "activatedOn","enrichDetails": false}
How it works
The actor talks to Crexi's own listing search API, the same one the website uses, and pages through results 60 at a time. Crexi caps any single search at 1,500 results, so when a query is larger the actor splits it by state, then property type, then asking-price band (with a separate pass for unpriced listings), then building size, and merges the shards with de-duplication by listing id. Results are pushed to the dataset as they arrive, so a stopped run still keeps everything collected so far.
With enrichDetails on, each listing gets three more calls: the detail record (description, highlights, subtypes, tenants, lot size, year built, sale condition, broker of record), the photo gallery, and the broker roster with license data and brokerage phone. Failed detail fetches are retried on a fresh proxy session; if a detail still fails, the row ships with the search-card fields and enriched: false rather than being dropped.
Limits and honest notes
- Financials are hidden for anonymous visitors. Crexi shows cap rate, NOI, occupancy, year built, lease term and similar numbers only to logged-in users. The filters still work server-side (you can ask for cap rate 6-8%), but the values come back
nullwithfinancialsMasked: true. Everything else - price, size, location, tenants, brokers, photos, text - is public and fully extracted. - For-sale only. Crexi's for-lease marketplace is rendered server-side without a public API; it is not covered by this actor.
- Portfolios list several addresses.
address/city/... describe the first one;locationCounttells you how many there are. - Listings that Crexi hides from anonymous traffic (private / vault-only) are not returned by the search API and therefore not by this actor.
Use cases
- Deal sourcing: pull every NNN, multifamily or industrial listing in your target states daily; diff against yesterday to catch new inventory and price changes.
- Broker prospecting: brokers, brokerages, license numbers and phone numbers for every active listing in a market.
- Market research and comps: asking-price and $/sq ft distributions by county, type and size band.
- Feeding your CRM, spreadsheet or model: export CSV/Excel or read the dataset via the Apify API.
Export formats
JSON, CSV, Excel (XLSX), XML, HTML table, or RSS - from the Console or via the Apify API (/v2/datasets/{datasetId}/items?format=csv). Schedule the actor and connect a webhook or Zapier/Make integration to push new listings anywhere.
Frequently asked questions
Does this scrape LoopNet too? No, Crexi only. LoopNet and Crexi have largely separate inventories, so many teams run both.
How many listings are there? Around 245,000 for sale across the US at any time; Texas alone is ~33,000, Land ~120,000.
Is it legal? The actor reads publicly available listing data with no login, at a polite request rate. You are responsible for how you use the output; check Crexi's terms for your use case.
Can I get cap rates? Only if Crexi publishes them to the public - currently they are shown to logged-in users only. Contact us if you need an authenticated mode.