Crexi Commercial Property Listings & Pricing Extractor
Collects active commercial real estate listings from Crexi across any US state and 14 property types, with asking price, square footage, location, and brokerage details.
Open in Apify Store$0.99 / 1K on Free
Short answer
Crexi Commercial Property Listings & Pricing Extractor is an Apify Store Actor for Crexi data that returns 11 published output fields, including property_type, price, building_sqft, broker_names. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 27 input settings, none required. It covers 5 of the 6 core Crexi fields this site tracks. Last updated Oct 19, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
11 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
nametransaction_typeproperty_typecitystatepricecap_ratenet_operating_incomebuilding_sqftbroker_namesproperty_url
Not in the schema among the core Crexi fields: address. The field matrix shows which other tools return them.
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| propertyUrls | array | No | [] | Paste Crexi property links or IDs (e.g. https://www.crexi.com/properties/123456/name, /lease/properties/987/name, a bare ID, or a property-record link) to fetch those exact listings. A Crexi search URL (https://www.crexi.com/search/...) is also accepted and its filters are reused. Leave empty to sea |
| transactionTypes | array | No | [] | Which Crexi marketplaces to search. Empty = for-sale listings only. |
| searchTerms | array | No | [] | Free-text keywords matched against listing names, descriptions and addresses (e.g. warehouse, medical office). |
| propertyTypes | array | No | [] | One or more commercial property categories. Empty searches every type. |
| subtypes | array | No | [] | Narrow to specific subtypes (e.g. Shopping Center, Medical Office, Warehouse). Note: some subtypes exist only for sale or only for lease listings. |
| locations | array | No | [] | US states to search, by two-letter code or full name. Each state is searched and combined. Empty searches nationwide. |
| cities | array | No | [] | City names to filter by (e.g. Austin). Works alongside or instead of states. |
| counties | array | No | [] | County names to filter by, including the word County where Crexi uses it (e.g. Travis County). |
| zipCodes | array | No | [] | US ZIP codes to filter by (e.g. 78701). |
| minPrice | integer | No | – | Only return listings asking at least this much. Sale and auction listings only. |
Show the other 17 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| maxPrice | integer | No | – | Only return listings asking at most this much. Sale and auction listings only. |
| minPricePerSqft | number | No | – | Only return sale listings priced at or above this per square foot. |
| maxPricePerSqft | number | No | – | Only return sale listings priced at or below this per square foot. |
| minCapRate | number | No | – | Only return sale listings with a published cap rate at or above this percentage. |
| maxCapRate | number | No | – | Only return sale listings with a published cap rate at or below this percentage. |
| minSquareFootage | integer | No | – | Only return listings whose building is at least this large. |
| maxSquareFootage | integer | No | – | Only return listings whose building is at most this large. |
| minRatePerSqftAnnual | number | No | – | For-lease listings only: minimum annual rate per square foot. |
| maxRatePerSqftAnnual | number | No | – | For-lease listings only: maximum annual rate per square foot. |
| buildingClasses | array | No | [] | Filter by commercial building class. Empty includes all classes. |
| opportunityZoneOnly | boolean | No | false | Only return sale listings located in a designated Opportunity Zone. |
| includeUnpriced | boolean | No | true | Include sale and auction listings Crexi shows without a public asking price (auctions, call for offers). |
| sortBy | string | No | Rank | Order of results within each search. |
| sortDirection | string | No | Descending | Ascending or descending order for the sort chosen above. |
| scrapeDetails | boolean | No | false | Fetch each listing's detail data: broker contacts (phone and email), the broker of record when published, the full photo gallery in high resolution, investment highlights, the marketing description, published fact-sheet values, and full auction details for auction listings. Adds a few requests per l |
| includeSimilarProperties | boolean | No | false | Add up to 6 similar nearby listings (comps) to each record. |
| maxProperties | integer | No | 100 | Stop once this many listings have been collected. Crexi returns at most 1,500 rows per filter combination; larger requests are automatically split into price-range partitions. |
Example input
Built from the input form's published example values and defaults.
{
"propertyUrls": [],
"transactionTypes": [],
"searchTerms": [],
"propertyTypes": [],
"subtypes": [],
"locations": [],
"cities": [],
"counties": [],
"zipCodes": [],
"buildingClasses": [],
"opportunityZoneOnly": false,
"includeUnpriced": true,
"sortBy": "Rank",
"sortDirection": "Descending",
"scrapeDetails": false,
"includeSimilarProperties": false,
"maxProperties": 5
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"propertyUrls": [],
"transactionTypes": [],
"searchTerms": [],
"propertyTypes": [],
"subtypes": [],
"locations": [],
"cities": [],
"counties": [],
"zipCodes": [],
"buildingClasses": [],
"opportunityZoneOnly": False,
"includeUnpriced": True,
"sortBy": "Rank",
"sortDirection": "Descending",
"scrapeDetails": False,
"includeSimilarProperties": False,
"maxProperties": 5
}
run = client.actor("dataspryva/crexi-commercial-property-listings-and-pricing").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"propertyUrls": [],
"transactionTypes": [],
"searchTerms": [],
"propertyTypes": [],
"subtypes": [],
"locations": [],
"cities": [],
"counties": [],
"zipCodes": [],
"buildingClasses": [],
"opportunityZoneOnly": false,
"includeUnpriced": true,
"sortBy": "Rank",
"sortDirection": "Descending",
"scrapeDetails": false,
"includeSimilarProperties": false,
"maxProperties": 5
};
const run = await client.actor("dataspryva/crexi-commercial-property-listings-and-pricing").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/dataspryva~crexi-commercial-property-listings-and-pricing/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"propertyUrls":[],"transactionTypes":[],"searchTerms":[],"propertyTypes":[],"subtypes":[],"locations":[],"cities":[],"counties":[],"zipCodes":[],"buildingClasses":[],"opportunityZoneOnly":false,"includeUnpriced":true,"sortBy":"Rank","sortDirection":"Descending","scrapeDetails":false,"includeSimilarProperties":false,"maxProperties":5}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=dataspryva/crexi-commercial-property-listings-and-pricing",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among Crexi routes
It ranks 1 of 1 catalogue Actors for Crexi on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Crexi Commercial Property Listings & Pricing Extractor 11 output fields, pay per event 5 of 6 core fields
$0.99 / 1K - + 6 other Store tools, combined Reference only 6 of 6 core fields
from $0.99 / 1K - API No public listing API No open API fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: No public listing API
No open API. Crexi does not publish a general public listing API.
Not applicable.
Other Store tools for Crexi
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| Crexi Commercial Real Estate Scraper | 38 | $1.55 |
| Crexi Scraper with Agents & Financials | 14 | $0.99 |
| LoopNet + Crexi Scraper · CRE Listings · CoStar Alternative | 47 | $18 |
| Crexi Scraper | 9 | $3.50 |
| Crexi Property Search Scraper | 38 | $2.00 |
What people use it for
- Find commercial properties
- Analyze asking prices and lease rates
Similar Actors
Brazil Rental & Sale Listings by City (QuintoAndar)
Search Brazilian rental and sale property listings by city and transaction type: price breakdown, bedrooms, bathrooms, area, furnishing, and…
Century 21 Listings & Property Detail Finder
Find Century 21 homes for sale or rent by city, county, neighborhood, or ZIP with price and size filters, or look up a property by address with…
Fotocasa Spain Sale & Rental Listings Scraper
Search Fotocasa listings for sale or rent across Spain by city, property type, price range, and bedrooms. Each result includes price, size,…
Idealista Search Listings Price & Feature Scraper
Pull real estate search-result listings from Idealista for Spain, Italy, and Portugal: price, size, rooms, address, thumbnail, feature flags, and…
Immowelt Germany Rent & Buy Listings Scraper
Scrape Immowelt.de - one of Germany's largest real-estate portals. Search rental and for-sale apartments and houses by city, price, rooms, living…
Indian Property Listings Finder by City & BHK
Search sale and rental property listings across 31 Indian cities by BHK, property type, locality and price band, with area, poster identity and…
Questions people ask
How much does Crexi Commercial Property Listings & Pricing Extractor cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does Crexi Commercial Property Listings & Pricing Extractor return?
Its published output schema lists 11 fields: name, transaction_type, property_type, city, state, price, cap_rate, net_operating_income, building_sqft, broker_names, property_url. A listed field is not guaranteed to be filled in every row.
What input does Crexi Commercial Property Listings & Pricing Extractor need?
No input is strictly required; the defaults run as is. Common settings: propertyUrls, transactionTypes, searchTerms, propertyTypes, subtypes, locations.
How do I run Crexi Commercial Property Listings & Pricing Extractor from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("dataspryva/crexi-commercial-property-listings-and-pricing").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("dataspryva/crexi-commercial-property-listings-and-pricing").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/dataspryva~crexi-commercial-property-listings-and-pricing/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- Crexi Commercial Property Listings & Pricing Extractor on Apify Store
- Published build with input and output schema (JSON)
- No public listing API documentation
Cite this page
Scraper Finder. "Crexi Commercial Property Listings & Pricing Extractor." https://scraperfinder.com/catalogue/crexi-commercial-property-listings-and-pricing/ (data checked 2026-11-12).
Run Crexi Commercial Property Listings & Pricing Extractor
$0.99 per 1,000 results. Paste the example input above, set your Crexi query, then export the dataset. Still choosing? Compare every Crexi route.