Crexi Commercial Real Estate Scraper avatar

Crexi Commercial Real Estate Scraper

Pricing

from $1.30 / 1,000 results

Go to Apify Store
Crexi Commercial Real Estate Scraper

Crexi Commercial Real Estate Scraper

[๐Ÿ’ฐ $1.30 / 1K] Extract commercial real estate listings from Crexi.com โ€” addresses, asking prices and rents, square footage, cap rates, broker contacts and full-resolution photos. Search any city, county, ZIP or state, and filter by deal type, property type, price or lease rate.

Pricing

from $1.30 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

1

Bookmarked

46

Total users

14

Monthly active users

17 days ago

Last modified

Share

Pull commercial real estate listings from Crexi.com at scale โ€” addresses and coordinates, asking prices and asking rents, square footage, lot size, broker and brokerage identity, cap rates, occupancy, and full-resolution photo galleries across for-sale, for-lease, and auction inventory in all 50 US states plus Washington DC. Built for commercial real estate investors, lenders, brokers, market researchers, and lead-generation agencies who need structured Crexi data without manually clicking through thousands of search pages.

Why This Scraper?

  • 10 property categories for sale, 6 for lease โ€” Office, Retail, Industrial, Land, Special Purpose and Healthcare work on both sides; Multifamily, Hospitality, Self Storage and Mobile Home Park are sale-side only because Crexi does not carry them for lease. Picking Healthcare sweeps up both medical office and senior living inventory in one pass.
  • 68 distinct property subtypes come back labelled โ€” Warehouse, Flex, Distribution, Apartment Building, Storefront, Medical Office, Auto Shop, Manufacturing and 60 more, measured across a 4,704-listing sample.
  • All 50 US states + Washington DC โ€” one nationwide hotel run returned listings from 45 different states in a single 240-row pull. No per-state configuration.
  • The location box understands more than city names โ€” type a county (Travis County, TX), a ZIP (78702), several places at once (Miami, Orlando, Tampa or Austin, TX; Dallas, TX), or a short form like NYC or Washington DC. Every name is checked against Crexi's own place index and repaired before the search runs, so a spelling that would return nothing gets corrected instead.
  • Broker identity on 100% of sale and auction rows โ€” name, Crexi broker ID and a direct link to the broker's profile page, filled on 3,577 of 3,577 sale and auction listings measured, with the brokerage company on 99.5%. Lease listings carry the brokerage on 95%.
  • Photo galleries averaging 15 images per listing at 3000ร—2000 โ€” median 10 shots, largest gallery 117. Sale and auction rows return the whole array; lease rows return the lead photo.
  • Asking rents unit-tagged so monthly and yearly quotes never blur โ€” of 504 published lease rents measured, 323 came back $/SF/YR and 164 $/SF/MO, plus per-acre monthly and yearly quotes. A rent Crexi publishes ambiguously is flagged as ambiguous rather than guessed at.
  • Two range filters matched to how Crexi actually quotes โ€” a total asking price for sale and auction listings, and a separate $/SF/YR rate for lease. Monthly rents are converted for you, so a $20โ€“$40 rate band also catches a $2.50/SF/MO suite. Setting either range drops the contact-for-pricing listings so every row you get back carries a number you can screen on.
  • Paste any Crexi search URL and keep its filters โ€” property type, price, lease rate, city, county, ZIP and state all carry across, including multi-city and multi-ZIP links.

Use Cases

Investment Sourcing

  • Screen hundreds of NNN retail deals by cap rate and asking price in one run
  • Find value-add multifamily assets below a price ceiling in target markets
  • Identify industrial listings with high occupancy across Sun Belt states
  • Pull auction listings to build a distressed-asset opportunity pipeline

Market Research

  • Map commercial inventory by state, county, and property type
  • Track average asking prices and cap rates across MSAs
  • Benchmark property subtypes (flex vs. warehouse vs. manufacturing) within a market
  • Monitor new listing activity over time by running on a schedule

Lead Generation

  • Build broker contact lists by market and property type (name + brokerage + profile URL)
  • Identify active listing agents in target geographies for outreach campaigns
  • Find owner-represented listings (no brokerage listed) for direct approaches

Portfolio Monitoring

  • Watch specific markets for new inventory matching your buy-box
  • Cross-reference listings against your existing portfolio addresses
  • Track price reductions by comparing runs over time

Lender Underwriting

  • Pull comparable sales and lease comps by property type, subtype, and geography
  • Gather occupancy and year-built data for underwriting models
  • Collect cap rate data points to calibrate discount-rate assumptions

Competitive Analysis

  • Benchmark competitor brokerages by listing volume and geography
  • Identify which property categories dominate inventory in a given state
  • Analyze listing age distribution to spot slow-moving product types

Getting Started

Simplest โ€” Browse by State and Deal Type

{
"dealType": "sale",
"state": "CA"
}

Returns all for-sale commercial listings in California (up to the default 200-result cap).

Mid-level โ€” Add Property Type and Price Filters

{
"dealType": "sale",
"state": "TX",
"propertyTypes": ["Office", "Retail"],
"priceMin": 1000000,
"maxResults": 100
}

Returns Texas office and retail listings priced at $1M or above, capped at 100 results.

Location-Level โ€” Target a City, County, ZIP, or Several

{
"dealType": "sale",
"city": "Travis County, TX",
"propertyTypes": ["Multifamily"],
"maxResults": 50
}

Returns multifamily listings across Travis County, Texas. The same field accepts "Austin", "78702", "NYC", or a list like "Miami, Orlando, Tampa". Add the State filter for an extra layer of precision.

Lease with a Rate Band

{
"dealType": "lease",
"state": "IL",
"propertyTypes": ["Office"],
"leaseRateMin": 15,
"leaseRateMax": 35,
"maxResults": 200
}

Returns Illinois office space asking $15โ€“$35 per square foot per year. Suites quoted per month are converted before the comparison, so nothing is missed.

Advanced โ€” Paste a Crexi URL Directly

{
"startUrls": ["https://www.crexi.com/properties?states=CA&types=Office"],
"maxResults": 500
}

Any filters you applied in the Crexi UI are preserved. Paste the URL from your browser and the scraper inherits your exact search configuration.

Input Reference

ParameterTypeDefaultDescription
cityString(none)Location. A city (Austin, Austin, TX), a county (Travis County, TX), a ZIP (78702), or several separated by commas or semicolons (Miami, Orlando, Tampa). Short forms like NYC and Washington DC work. Ignored when startUrls is provided.
startUrlsList(empty)One or more Crexi.com search result URLs. Whatever you filtered on Crexi (property type, price, lease rate, city, county, ZIP, state) is honoured. When provided, these replace Location and every Filters setting, which are then ignored; only maxResults still applies.

Filters

ParameterTypeDefaultDescription
dealTypeSelectFor SaleFor Sale, For Lease, Auction, or All Deal Types. "All Deal Types" returns up to maxResults Sale AND up to maxResults Lease rows (up to 2ร— total); it does not add auctions. Only a few dozen auctions are live at any moment, so an auction run finishes well under your maxResults โ€” that is the whole auction market, not a truncated run.
propertyTypesMulti-select(all)Limit to one or more of: Multifamily, Office, Retail, Industrial, Land, Hospitality, Special Purpose, Healthcare, Self Storage, Mobile Home Park. Leave empty to include all types. Crexi lists Multifamily, Hospitality, Self Storage and Mobile Home Park for sale only, and the run says so instead of returning nothing.
stateSelect(all states)Limit results to a specific US state (Alabama through Wyoming + Washington DC). Leave blank to search nationwide.
priceMinInteger(none)Minimum asking price in USD. Applies to sale and auction listings only. Leave blank for no minimum.
priceMaxInteger(none)Maximum asking price in USD. Applies to sale and auction listings only. Leave blank for no maximum.
leaseRateMinInteger(none)Minimum asking rent in dollars per square foot per year, for lease listings only. Monthly quotes are converted automatically. Leave blank for no minimum.
leaseRateMaxInteger(none)Maximum asking rent in dollars per square foot per year, for lease listings only. Monthly quotes are converted automatically. Leave blank for no maximum.

Sale and lease are quoted in different units, so they get their own range fields: a total asking price for sale and auction listings, a per-square-foot annual rent for lease. Set a range on the wrong side and the run tells you it could not apply it rather than dropping it in silence. Setting either range also excludes listings with no published number, because an undisclosed figure cannot be matched against your range. Leave them blank to include contact-for-price listings.

Limits

ParameterTypeDefaultDescription
maxResultsInteger200Maximum listings to collect. The last page is kept whole, so the final count may slightly exceed this. Set to 0 for no cap.

Output

Each row represents one commercial listing. Below is a representative for-sale record:

{
"id": 751699,
"name": "T-Mobile Outparcel to Walmart",
"status": "On-Market",
"dealType": "Sale",
"listingUrl": "https://www.crexi.com/properties/751699/california-walmart-plaza-outparcel",
"propertyType": "Retail",
"propertySubType": "Shopping Center",
"description": "<p>The <strong>Walmart Plaza Shopping Center</strong>...</p>",
"activatedAt": "2022-02-01T05:40:50.2Z",
"updatedAt": "2026-04-04T20:08:42.857Z",
"address": "2920 Main St",
"city": "Susanville",
"state": "CA",
"zip": "96130",
"county": "Lassen County",
"latitude": 40.40804333639934,
"longitude": -120.6347412391219,
"price": 1140000.0,
"priceFormatted": "$1,140,000",
"pricePerSqft": 175.38,
"leaseRate": null,
"sqft": 6500,
"lotSizeAcres": 1.38,
"units": 3,
"yearBuilt": 1997,
"capRate": null,
"occupancy": 50.0,
"brokerName": "Heath Charamuga",
"brokerId": 7123,
"brokerProfileUrl": "https://www.crexi.com/brokers/heathc",
"brokerageName": "Epic Real Estate Advisors, Inc",
"brokerageLogoUrl": "https://images.crexi.com/user-accounts/...",
"primaryImageUrl": "https://images.crexi.com/assets/751699/...jpg",
"imageUrls": ["https://images.crexi.com/assets/751699/...jpg", "..."]
}

Coverage figures below are real fill rates, measured over 4,704 listings collected across dozens of live runs โ€” 3,265 for sale, 1,127 for lease, 312 at auction. Brokers choose which numbers to publish, so no field except the core identity set is on every row.

Core & Identity Fields

FieldTypeCoverageDescription
idInteger100%Crexi listing ID
nameString100%Listing title as shown on Crexi
statusString100%On-Market, Active, Auction, Call For Offers or Highest & Best
dealTypeString100%Sale, Lease, or Auction
listingUrlString100%Full URL to the listing on Crexi
descriptionString99%+Full listing description (may include HTML)
activatedAtString100%ISO 8601 date when listing went live
updatedAtStringSale & auction onlyISO 8601 date of last update

Address & Location Fields

FieldTypeCoverageDescription
addressString100%Street address
cityString100%City
stateString100%2-letter state code
zipString100%ZIP code
countyString83% sale ยท 54% lease ยท 95% auctionCounty name
latitudeFloat99.9%Latitude coordinate
longitudeFloat99.9%Longitude coordinate

Pricing & Financial Fields

FieldTypeCoverageDescription
priceFloat59% sale ยท 100% auctionAsking price in USD. The rest are contact-for-pricing.
priceFormattedStringmatches priceHuman-readable price (e.g. $1,140,000)
pricePerSqftFloat25% of sale listingsPrice per square foot exactly as the broker published it. Sale listings only โ€” Crexi does not publish it on auction or lease rows.
leaseRateString45% of lease listingsPublished asking rent with its unit and period (e.g. $14.40/SF/YR, $1.85/SF/MO, $3,950/AC/MO). Ranges appear as $18 - $24/SF/YR. Where the broker filed some suites yearly and others monthly at the same figure, the period is marked unknown ($2.05/SF (YR or MO)) instead of being guessed. Null on sale listings.
capRateFloat20% sale ยท 2% auctionCapitalization rate as a percentage
occupancyFloat30% sale ยท 59% auctionOccupancy percentage

Property Details Fields

FieldTypeCoverageDescription
propertyTypeString100%Top-level category (e.g. Retail, Industrial)
propertySubTypeString95% sale ยท 92% auctionOne of 68 observed subtypes (Shopping Center, Warehouse, Medical Office, Flex, โ€ฆ). Not published on lease listings.
sqftInteger88% sale ยท 99.6% lease ยท 64% auctionRentable square footage
lotSizeAcresFloat87% sale ยท 100% auctionLot size in acres. Listings that quote the lot in square feet are converted, so the column is always acres.
unitsInteger26% sale ยท 24% auctionNumber of rentable units or suites โ€” apartments, storefronts, office suites, flex bays. Published on every property category, not just multifamily.
yearBuiltInteger57% sale ยท 49% auctionYear of construction. Roughly two sale listings in five do not publish it at all.

Broker Fields

FieldTypeCoverageDescription
brokerNameString100% sale & auctionListing broker's name
brokerIdInteger100% sale & auctionCrexi internal broker ID
brokerProfileUrlString100% sale & auctionURL to the broker's Crexi profile
brokerageNameString99.5% sale ยท 95% leaseBrokerage company name
brokerageLogoUrlString86%URL to the brokerage logo image

Media Fields

FieldTypeCoverageDescription
primaryImageUrlString99.4% sale ยท 100% lease & auctionMain listing photo (3000ร—2000 resolution)
imageUrlsArray99.4% sale ยท 100% auctionEvery photo on the listing at full resolution โ€” 15 per listing on average, up to 117. Lease listings publish only the lead photo.

Lease rows are a thinner record than sale rows, because Crexi publishes less on them. propertySubType, yearBuilt, capRate, occupancy, units, lotSizeAcres, price, updatedAt, the broker name/ID/profile URL and the full photo array are sale-and-auction only; pricePerSqft is sale-only. Lease listings make up for it with near-perfect square footage (99.6%), the asking rent, and the lead photo on every row.

Tips for Best Results

  • For lease searches, set dealType to For Lease โ€” lease results are not included in the default For Sale run. If you need both deal types, select All Deal Types; note that this adds lease rows, not auction rows.
  • Type a county or ZIP into the location box, not just a city โ€” Travis County, TX covers Austin, Pflugerville, Manor, Buda and Spicewood in one search, which a city name alone would miss. 78702 narrows to a single neighbourhood.
  • Paste a pre-filtered Crexi URL for complex searches โ€” apply all your location, property type, and price filters directly on Crexi.com, then paste the resulting URL into startUrls. This is the most reliable method for highly specific queries.
  • Set maxResults to 0 for full market pulls โ€” the default cap of 200 is designed for quick test runs. Removing the cap lets you collect every matching listing across hundreds of pages.
  • Set a price or rate range to drop contact-for-price listings โ€” roughly 4 in 10 sale listings and better than half of lease listings are quoted only on request. Any priceMin/priceMax on sale, or leaseRateMin/leaseRateMax on lease, removes them, so every row you get back carries a figure you can screen on. Leave the fields blank when you want the full market.
  • Cap rate and occupancy are publisher-dependent, and thinner than you might expect โ€” measured across live runs, capRate lands between 12% and 52% of sale rows depending on property type and market, and occupancy between 20% and 73%. Filter on them after the fact rather than assuming every row has them.
  • Four categories are sale-side only โ€” Crexi carries Multifamily, Hospitality, Self Storage and Mobile Home Park for sale but not for lease. Pair those with For Sale or All Deal Types. Office, Retail, Industrial, Land, Special Purpose and Healthcare are available on both sides.
  • For multifamily deals, filter by propertyTypes: ["Multifamily"] โ€” then divide price by sqft, or by units for a per-door figure, for quick screening across apartment listings.
  • Schedule recurring runs to track new inventory โ€” pair this actor with Apify's scheduling feature to pull fresh listings daily or weekly, then compare against your previous dataset to surface new additions.

Pricing

From $1.30 per 1,000 results โ€” no compute charges. You only pay per result returned.

Your rate depends on your Apify discount tier. Tiered rates take effect on 6 September 2026; until then every plan pays $1.30 per 1,000 results.

ResultsNo discountBronzeSilverGold
100$0.15$0.14$0.14$0.13
1,000$1.55$1.45$1.40$1.30
10,000$15.50$14.50$14.00$13.00
100,000$155.00$145.00$140.00$130.00

Integrations

Connect your Crexi data to the tools you already use:

  • Zapier โ€” trigger workflows when new listings are collected (CRM updates, Slack alerts, email notifications)
  • Make (formerly Integromat) โ€” route listing data into Google Sheets, Airtable, Notion, or any custom pipeline
  • Google Sheets โ€” use the Apify Google Sheets integration to stream results directly into a spreadsheet
  • Apify API โ€” call the actor programmatically and retrieve results via the Apify REST API or client SDKs
  • Webhooks โ€” configure a webhook to POST results to your own endpoint as soon as each run completes

This actor collects publicly available listing data from Crexi.com. Use it in accordance with Crexi's Terms of Service and all applicable laws. Do not use collected data for spam, harassment, or any purpose that violates the privacy or rights of brokers or property owners. The actor does not collect any login-gated or private information โ€” broker phone numbers and email addresses are not available to unauthenticated users and are not included in the output.