Crexi Scraper & New Listings Monitor - CRE Price Drop Alerts
Pricing
from $12.00 / 1,000 listing returneds
Crexi Scraper & New Listings Monitor - CRE Price Drop Alerts
Crexi scraper for commercial real estate: properties for sale or lease by state or city, newest first, with price, cap rate, NOI, building and lot size, property type, address and brokerage. Watch mode returns only new listings and price drops. Export as CSV, Excel or JSON.
Pricing
from $12.00 / 1,000 listing returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Crexi Scraper & New Listings Monitor
A Crexi scraper that turns Crexi commercial real estate listings into clean rows, and a new listings alert for commercial property. Pick a US state or city, choose for sale or for lease, and get every listing newest on Crexi first: asking price, cap rate, NOI, price per square foot, building and lot size, property type, address, coordinates and the brokerage. Turn on watch mode and schedule it: each run returns only the properties that appeared on Crexi since your last check and the ones whose asking price went down.
Built for CRE investors who want new deals before others call on them, brokers tracking their market, and analysts who need Crexi data in a spreadsheet without copying it by hand. No Crexi account, no API key and no cookies are needed.
Export as JSON, CSV or Excel, or push new listings to Slack, email or a Google Sheet with an Apify integration.
What you get
One row per Crexi property:
| Field | Example | Notes |
|---|---|---|
listingId, listingType, url | sales-2742881, sale, https://www.crexi.com/properties/2742881/texas-walgreens | Crexi's own ID and the listing page |
title, summary | Walgreen's, Retail | 6.75% CAP | 14,820 SqFt | The listing name and the one-line summary Crexi shows in search |
propertyType, propertySubType | Retail, Pharmacy/Drug | As Crexi classifies it (a property can have several) |
listingStatus | On-Market, Auction, Call For Offers, Active (lease) | |
price, currency, pricePerSqft, pricePerAcre | 6133733, USD, 413.88 | Asking price. Unpriced listings get null (never 0) |
capRatePercent, netOperatingIncome | 6.75, 414027 | When the listing states them |
auctionStartingBid | Auction listings only | |
leaseRatePerSqftYearMin, leaseRatePerSqftYearMax, rentableSqftMin, rentableSqftMax, spacesCount | 18, 24, 1200, 5400, 3 | Lease listings: the range across the spaces offered |
buildingSqft, lotSizeAcres, lotSizeSqft, unitsCount, buildingsCount, storiesCount, buildingClass | 14820, 1.7 | |
yearBuilt, yearRenovated, tenancyType, investmentType | 2017, Single, Net Lease | |
address, streetAddress, city, state, zip, county, latitude, longitude | 15633 Vintage Preserve Parkway, Houston, TX 77070 | addressCount is above 1 for portfolios |
brokerage | SVN | Net Lease Texas | The listing brokerage firm(s) |
listedAt, updatedAt, daysOnMarket | 2026-10-10T19:53:32.059Z | When the listing went live and was last updated on Crexi (UTC) |
photoCount, imageUrl, hasVirtualTour | 7 | Main photo link |
changeType, previousPrice, priceChange | new, price-drop, 6400000, -266267 | Watch mode only |
positionInSearch, listingsInSearch, searchLocation | 1, 446, Houston, TX | Where the listing was in the search, and how many Crexi counts for it |
In a sample of 282 Texas listings for sale (2026-10-12): asking price was present in 220, building size in 194, lot size in 208 (acres) or 34 (square feet), year built in 156, a brokerage in 273, a main photo in 268, and a cap rate in 48 (most often on retail and net-lease listings). In 60 Texas lease listings, a lease rate per square foot was present in 33 and rentable square feet in all 60.
How to use it
Plain search: put locations in locations, one per line, as a state (TX or Texas) or a city with its state (Houston, TX).
{ "locations": ["Houston, TX", "Dallas, TX"], "listingType": "sale", "maxResultsPerSearch": 100 }
maxResultsPerSearch sets how many listings each location returns (1 to 1,000; 50 when empty).
Filters: propertyTypes, minPrice, maxPrice and minCapRate (for sale), and listingType: "lease" for spaces for lease. Crexi applies them, and every row is checked again against your values before it is returned.
{ "locations": ["Florida"], "propertyTypes": ["Retail"], "minPrice": 1000000, "maxPrice": 5000000, "minCapRate": 6.5 }
{ "locations": ["Austin, TX"], "listingType": "lease", "propertyTypes": ["Office"] }
Watch mode (onlyNew: true): run the same input on a schedule (for example every hour or every morning).
- The first run saves the current listings as the starting point. It returns no listing rows and is not charged.
- Every later run returns only:
new: listings that appeared on Crexi after the watch started and match your filters;price-drop: properties for sale the watch has seen whose asking price is now lower, withpreviousPriceandpriceChange.
- If nothing changed, you get one row
no-new-listingssaying so.
Set includePriceDrops to false to get only new listings. Use watchName to keep two separate watches of the same search, and resetMonitoringState to start a watch again.
Pricing
- Per listing returned (
listing-returned): you pay only for property rows. No start fee. - Watch check with nothing new (
search-checked): in watch mode, one small charge for each location search that was compared and had nothing new to return. - Free: the first run of a watch, listings your filters leave out, and every row that explains why something was not returned.
Output rows that cost nothing
Every problem comes back as a row with status and a plain-English note, and is never charged:
no-results: Crexi lists nothing for this location (for example a city name Crexi does not use).none-matching-filters: Crexi has listings here, but none matches your filters.watch-started: the first check of a watch saved its starting point.no-new-listings: watch mode found nothing new (this is the one case that carries the small watch-check charge).more-not-returned,watch-coverage: more listings exist than this run returned or checked.budget-reached: the run hit the maximum total charge you set; nothing past it was charged, and in watch mode a later run returns it.bad-input,unreadable,blocked,not-allowed-by-robots-txt: the input could not be used, or Crexi could not be read. Nothing is guessed.
FAQ
Is there a Crexi API for listings? Crexi does not sell a public listings API. This Actor reads the same public search data the Crexi website shows to visitors who are not signed in, and gives it to you as rows you can download or send to other tools through the Apify API.
How do I get an alert when a new commercial property is listed on Crexi?
Turn on onlyNew, set your locations and filters, and add a schedule in Apify (Schedules, then pick this task). Connect the dataset to Slack, email, Zapier or Make to get each new listing as a message.
Can I export Crexi listings to Excel or Google Sheets? Yes. Every run's dataset downloads as CSV, Excel or JSON, and the Google Sheets integration can append each run's rows to a sheet.
Does it get broker contact details?
It returns the brokerage firm name for each listing. It does not collect broker names, phone numbers or e-mails, and phone numbers or e-mails written in a listing summary are replaced with [phone removed] / [email removed].
Good to know
- This is an unofficial tool, not made by or connected to Crexi (Commercial Real Estate Exchange, Inc.). It reads only public listing information that Crexi shows to signed-out visitors.
- Cap rate, NOI, building size and year built come from what the listing states, so they are
nullwhen the listing does not give them. - Watch mode reads the listings updated most recently on Crexi, up to 600 per check, and stops when it reaches listings it already compared at the last check. If more than that changed between two checks you get a
watch-coveragerow; run the watch more often or narrow it. - Price drops are tracked for properties for sale. Lease watches return new spaces for lease.
- City names are matched as Crexi writes them (case does not matter). If a city returns
no-results, check the spelling on crexi.com or search the whole state. - Up to 20 locations and 1,000 listings per location per run.
Thanks for using this Actor
We build these tools for people who run them every day, and we improve them from what users tell us.
- Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
- Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.
If this Actor saved you time, a short review helps other people find it.