This is the documentation & usage guide. The scraper itself runs fully hosted on the Apify platform — nothing to install, no code to deploy.
Extract US commercial real estate listings from Crexi without a login or API key. This Crexi scraper pulls CRE listing data — asking price, cap rate, square footage, year built, full address + GPS coordinates — and the listing brokers behind each deal, then exports everything to CSV, JSON or Excel. Filter by property type, US state, keyword or price, or paste a Crexi search URL, and the Actor returns hundreds to hundreds of thousands of commercial listings with optional broker-contact enrichment for B2B lead generation. No API key, no login, no browser.
Whether you are sourcing office, retail, industrial or multifamily deals, building a commercial real estate comps database, or assembling a broker outreach list, the Crexi Scraper turns crexi.com search results into clean, structured, spreadsheet-ready rows in one run — thousands of records with no authentication required.
Every commercial listing comes back as a flat row with up to 40 fields, including:
- 🏢 Property — name, property type (Office, Retail, Industrial, Multifamily, Land, Hospitality…), subtypes, investment type and listing status (For Sale / Auction / Lease / Call for Offers).
- 💰 Deal metrics — asking price (USD), cap rate, square footage, number of units, lot size in acres, year built, building class (A/B/C) and occupancy percentage.
- 🗺️ Location — street address, city, county, state code, full state name, ZIP, composed full address and exact latitude / longitude for mapping.
- 🧑💼 Broker leads — brokerage name, broker name(s), broker license number(s), public Crexi broker profile URL(s) and the brokerage website — the B2B contact data.
- 🖼️ Media & flags — number of images, thumbnail URL, broker-team logo, Opportunity-Zone flag, video / virtual-tour flags.
- 📝 Content & dates — marketing description, investment highlights, activation date, last-updated date and the scrape timestamp.
- CRE market research — analyze asking prices, cap rates and price-per-sqft by property type and US state.
- Commercial broker lead generation — build B2B outreach lists of CRE brokers with names, license numbers, profile URLs and brokerage websites.
- Investor deal sourcing — filter Office, Retail, Industrial or Multifamily by price band and surface deals that match your mandate.
- Commercial comps database — assemble CRE comps with size, year built, cap rate and location for underwriting and valuation.
- Mapping & dashboards — feed geo-coded listings (
latitude/longitude) into a GIS map or investment dashboard. - Opportunity Zone screening — filter on
isInOpportunityZoneto surface tax-advantaged commercial assets. - Loan & underwriting pipelines — pull deal metrics for lenders and acquisitions teams evaluating commercial properties.
You can run the Crexi Scraper from the Apify Console (no code), the Apify CLI, the REST API, or the official JavaScript / Python clients. Leave the input empty to browse the newest US commercial listings nationwide.
- Open the Actor: apify.com/logiover/crexi-scraper
- Click Try for free.
- Leave the input empty for a nationwide sample, or set Property types, US states, Keyword and price — or paste a Crexi search URL.
- Click Start and download results from the Output tab (JSON, CSV, Excel, XML).
npm install -g apify-cli
apify login
apify call logiover/crexi-scraper --input='{
"propertyTypes": ["Retail"],
"states": ["TX"],
"fetchDetails": true,
"fetchBrokers": true,
"maxResults": 200
}'curl -X POST "https://api.apify.com/v2/acts/logiover~crexi-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"propertyTypes": ["Office"],
"states": ["CA", "NY"],
"minPrice": 1000000,
"maxPrice": 20000000,
"maxResults": 200
}'import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('logiover/crexi-scraper').call({
searchUrls: ['https://www.crexi.com/properties/texas/retail-commercial-real-estate'],
fetchDetails: true,
fetchBrokers: true,
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} commercial listings`);from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("logiover/crexi-scraper").call(run_input={
"propertyTypes": ["Multifamily"],
"keyword": "Austin",
"fetchDetails": False,
"fetchBrokers": False,
"maxResults": 1000,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Got {len(items)} listings")More detailed, copy-pasteable examples live in examples/: CLI · API / cURL · JavaScript · Python.
All fields are optional — leave everything empty to browse the newest US commercial listings nationwide. Give the Actor either one or more searchUrls, or use the explicit filter fields (which include dropdowns for property type and US state).
| Field | Type | Description |
|---|---|---|
searchUrls |
array | Crexi search/result URLs copied from crexi.com. Property-type, state and keyword filters in the URL are parsed automatically. Leave empty to use the explicit filter fields. |
propertyTypes |
array (dropdown) | Filter by property type: Multifamily, Office, Retail, Industrial, Land, Hospitality, Mixed Use, Self Storage, Mobile Home, Special Purpose, Health Care. Empty = all types. |
states |
array (dropdown) | US state filter — 2-letter codes (CA, TX, NY) or full names. Empty = all states. |
keyword |
string | Free-text search (city, address, asset name). |
minPrice / maxPrice |
integer | Asking-price range in USD. |
includeUnpriced |
boolean | Include listings without a published price (auctions, call-for-offers, lease). Default true. |
fetchDetails |
boolean | Add cap rate, year built, lot size, units, occupancy, building class and description per listing. Default true. |
fetchBrokers |
boolean | Add broker name, license, profile URL and brokerage website per listing. Default true. |
maxResults |
integer | Stop after this many listings. 0 = no limit (a single search can span hundreds of thousands). |
useProxy |
boolean | Route through Apify Proxy (datacenter default). |
proxyConfiguration |
object | Apify Proxy settings. Datacenter is the default; Residential is optional. |
maxConcurrency |
integer | How many detail/broker enrichment calls to run in parallel per page (1–20). |
Tip — get a search URL: open crexi.com, apply your property-type / state / price filters in the UI, then copy the
crexi.com/properties/...URL from the address bar and paste it intosearchUrls.
One row per commercial listing. Example record (trimmed):
{
"id": "a1b2c3d4",
"name": "Prime Retail Strip Center",
"url": "https://www.crexi.com/properties/123456/texas-prime-retail-strip-center",
"propertyType": "Retail",
"subtypes": "Strip Center",
"status": "For Sale",
"askingPrice": "4250000",
"capRate": "6.75",
"squareFootage": "18500",
"units": "8",
"lotSizeAcres": "1.85",
"yearBuilt": "2004",
"buildingClass": "B",
"occupancy": "95",
"address": "1200 Main Street",
"city": "Austin",
"county": "Travis",
"state": "TX",
"zip": "78701",
"fullAddress": "1200 Main Street, Austin, TX 78701",
"latitude": "30.2672",
"longitude": "-97.7431",
"brokerageName": "Lone Star Commercial",
"brokerNames": "Jane Smith, Mark Lee",
"brokerLicenses": "0654321, 0654322",
"brokerProfileUrls": "https://www.crexi.com/profile/jane-smith",
"brokerageWebsite": "https://lonestarcre.com",
"isInOpportunityZone": "false",
"numberOfImages": "24",
"activatedOn": "2026-06-18T00:00:00Z",
"updatedOn": "2026-07-01T00:00:00Z",
"scrapedAt": "2026-07-06T12:00:00Z"
}| Field | Description |
|---|---|
id |
Crexi asset ID |
name |
Listing / asset name |
url |
Direct link to the Crexi listing |
propertyType / subtypes / investmentType |
Property type(s), subtypes and investment type |
status |
Listing status (For Sale, Auction, Lease, Call for Offers) |
askingPrice |
Asking price in USD |
capRate |
Capitalization rate (when published) |
squareFootage / units / lotSizeAcres |
Building size, unit count, lot size in acres |
yearBuilt / buildingClass / occupancy |
Year built, building class (A/B/C), occupancy % |
address / city / county / state / stateName / zip / fullAddress |
Address components |
latitude / longitude |
GPS coordinates |
brokerageName / brokerNames / brokerLicenses |
Brokerage and broker names + license numbers |
brokerProfileUrls / brokerageWebsite |
Public Crexi profile URL(s) and brokerage website |
isInOpportunityZone |
Opportunity Zone flag |
hasVideo / hasVirtualTour / numberOfImages / thumbnailUrl / brokerTeamLogoUrl |
Media flags and image URLs |
description / highlights |
Marketing description and investment highlights |
activatedOn / updatedOn / scrapedAt |
Listing activation, last-update and scrape timestamps |
- Schedule the Crexi Scraper on Apify to refresh your CRE dataset daily or weekly.
- Webhooks — trigger a POST to your endpoint when a run finishes.
- Google Sheets / Amazon S3 / databases — push results via Apify's built-in integrations.
- Zapier, Make, n8n and Pipedream — connect through Apify to build automated deal-sourcing and broker-outreach pipelines.
- CRM sync — feed broker leads straight into your sales stack after each run.
Results can be downloaded or streamed as CSV, JSON, JSONL, Excel (XLSX) and XML from the run's dataset — via the Console Export button or the Apify API.
No. The Actor requires no Crexi account, cookies or API key — only an Apify account. Empty input works and returns thousands of listings.
Yes. Crexi has no public developer API, so this Actor works as an unofficial Crexi API alternative — it returns clean, structured listing and broker records you can call on a schedule.
Open the Actor, optionally set property type / state / price (or paste a Crexi search URL), and click Start. You get commercial listings with prices, cap rates, addresses and broker contacts as structured rows.
Yes. Enable Fetch broker contact leads (fetchBrokers) to pull each listing's broker name, license number, public Crexi profile and brokerage website — ready for B2B outreach.
Yes, when published. Enable Fetch listing details (fetchDetails) to add capRate, yearBuilt, lotSizeAcres, units, occupancy, buildingClass and the marketing description to each record.
Run a search, then download the dataset as CSV, JSON, Excel or XML from the run page, or pull it via the Apify API. Every listing and broker lead is a flat, ready-to-import row.
Yes. Paste any crexi.com search URL into searchUrls and the scraper reads the property-type, state and keyword filters from the URL automatically.
A single search can span hundreds of thousands of listings. Set maxResults to cap the run (0 = no limit), and narrow with property type, state and price filters to reach relevant inventory faster.
Yes. Every listing carries latitude and longitude alongside the full address, so you can feed geo-coded commercial listings straight into a GIS map or dashboard.
This Actor collects only publicly available listing and broker data. You are responsible for using it in line with Crexi's terms and applicable laws (such as GDPR/CCPA for personal data).
- Airbnb Scraper — short-stay listings, prices, availability & reviews.
- Craigslist Scraper — US classifieds including real estate & for-sale.
- Browse the full suite: all logiover scrapers on Apify Store.
📄 Documentation only — this repository contains no scraper source code. The Actor runs on the Apify platform.
Licensed under the MIT License · © 2026 logiover