Crexi Property Scraper
Pricing
Pay per usage
Crexi Property Scraper
Extract Crexi property listings automatically. Scrape commercial real estate data including prices, addresses, features & details. Perfect for real estate analysis, market research, investor tracking. Get CRE market data instantly.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract commercial property listings from Crexi sale result pages with a dataset that is easy to export, filter, and analyze. Collect core listing data such as title, address, price label, property type, metrics, listing URL, and primary image, then optionally enrich each record with property facts, marketing description, brochure links, contact details, and gallery images.
Features
- Collects commercial property listings from Crexi sale pages.
- Supports direct start URLs for general search pages, market pages, and property-type pages.
- Applies optional keyword and location filters after collection so one run can narrow a broad market feed.
- Captures result-page fields such as address, price, property type, metrics, summary text, image, and listing URL.
- Optionally opens property detail pages for marketing description, listing contacts, brochure links, property facts, and gallery images.
- Removes empty values before saving each dataset item, so the output stays clean and compact.
Use Cases
Market Research
Track active commercial property listings across specific cities, states, or property types. Build a repeatable dataset for market monitoring, pricing snapshots, and supply comparisons.
Investment Screening
Collect listings with pricing, headline metrics, and summary information into a structured feed that can be reviewed in spreadsheets, BI tools, or custom pipelines.
Broker and Contact Discovery
Enable detail collection to capture listing contacts and brochure-style links from property pages. This is useful when building lead lists or reviewing active brokers in a market.
Content and Deal Monitoring
Run the actor on a schedule and compare new listings, updated properties, or pricing visibility across the same Crexi page over time.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | "https://www.crexi.com/properties?pageSize=60" | Crexi sale results URL to scrape. Use a filtered market or property-type page if needed. |
keyword | String | No | - | Optional keyword filter applied to title, summary, address, and property type after collection. |
location | String | No | - | Optional location filter applied to address and summary after collection. |
collectDetails | Boolean | No | false | Open detail pages to collect marketing description, contacts, brochure links, property facts, and gallery images. |
results_wanted | Integer | No | 20 | Maximum number of properties to save. |
max_pages | Integer | No | 3 | Safety cap on the number of Crexi result pages to visit. |
pageSize | Integer | No | 60 | Number of results requested per page. Current practical maximum is 60. |
proxyConfiguration | Object | No | Residential proxy preset | Proxy configuration. Residential proxies are recommended for the most consistent runs. |
Output Data
Each item in the dataset can contain the following fields:
| Field | Type | Description |
|---|---|---|
listing_id | String | Crexi listing identifier. |
title | String | Listing title. |
address | String | Property address and market. |
price_text | String | Displayed price label, such as Unpriced or a dollar amount. |
price_value | Number | Parsed numeric price when available. |
property_type | String | Primary property type from the results card. |
metric_line | String | Key metrics from the results card, such as size or cap rate text. |
summary | String | Short listing summary from the results page. |
image_url | String | Primary image URL from the results page. |
url | String | Absolute Crexi property URL. |
page_number | Integer | Results page where the property was found. |
days_on_market | String | Days-on-market text from the detail page when available. |
last_updated | String | Relative update timestamp from the detail page when available. |
marketing_description | String | Expanded marketing description from the detail page when enabled. |
brochure_links | Array | Brochure-related links such as View Flyer or View OM when available. |
contacts | Array | Listing contacts collected from the detail page when enabled. |
image_urls | Array | Gallery image URLs from the detail page when enabled. |
property_facts | Object | Property facts collected from the detail page when enabled. |
search_url | String | Results page URL that produced the item. |
collected_at | String | Timestamp when the item was saved. |
Usage Examples
Basic Sale Feed Extraction
{"startUrl": "https://www.crexi.com/properties?pageSize=60","results_wanted": 20,"max_pages": 2,"pageSize": 60}
Filter a Market Feed
{"startUrl": "https://www.crexi.com/properties/TX/Houston?pageSize=60","keyword": "medical office","location": "Houston","results_wanted": 25,"max_pages": 3,"pageSize": 60}
Enrich With Detail Pages
{"startUrl": "https://www.crexi.com/properties/Land?pageSize=60","collectDetails": true,"results_wanted": 15,"max_pages": 2,"pageSize": 60,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"listing_id": "1650088","title": "1.46 Acres Available at Centerra | 5850 Sky Pond, Loveland","address": "5850 Sky Pond Dr, Loveland, CO 80538","price_text": "Unpriced","property_type": "Land","metric_line": "Land","summary": "1.46 Acres Available at Centerra | 5850 Sky Pond, Loveland","image_url": "https://images.crexi.com/assets/1650088/43168fd433f141a7a678784a7645b813_716x444.jpg","url": "https://www.crexi.com/properties/1650088/colorado-5850-sky-pond-loveland-co-80538","page_number": 1,"days_on_market": "569 days on market","last_updated": "Updated 9 days ago","marketing_description": "4.2 Million SF of office, retail, flex, industrial and hospitality in the Centerra Community.","brochure_links": [{"label": "View Flyer","url": "https://www.crexi.com/properties/1650088/colorado-5850-sky-pond-loveland-co-80538"}],"contacts": [{"name": "Cole VanMeveren","profile_url": "https://www.crexi.com/profile/cole-vanmeveren-colevanm","summary": "Cole VanMeveren PROCO FA. 100088218"}],"property_facts": {"property_type": "Land","sub_type": "Commercial, Pad sites(+1)"},"search_url": "https://www.crexi.com/properties?pageSize=60","collected_at": "2026-03-12T12:00:00.000Z"}
Tips for Best Results
Start With a Focused URL
- Use a filtered market or property-type page when you already know the segment you want.
- Keep
pageSizeat60to reduce pagination overhead.
Use Detail Collection Selectively
- Keep
collectDetailsdisabled when you only need card-level listing data. - Enable it when you need contacts, property facts, brochure links, or longer descriptions.
Keep QA Runs Fast
- Use
results_wanted: 20andmax_pages: 2for quick validation runs. - Increase limits gradually for production collection.
Prefer Residential Proxies
- Residential proxies are the most reliable choice for consistent runs on browser-rendered property pages.
- If a run becomes unstable, retry with residential proxy settings enabled.
Integrations
Connect the dataset with:
- Google Sheets - Review live property feeds in a spreadsheet.
- Airtable - Build searchable listing tables for teams.
- Make - Automate handoffs into CRM, alerts, or reporting flows.
- Zapier - Trigger notifications when matching properties appear.
- Webhooks - Push fresh listing data into your own systems.
Export formats include:
- JSON - Best for APIs and custom processing.
- CSV - Best for spreadsheet analysis.
- Excel - Best for reporting and sharing.
- XML - Best for system integrations.
Frequently Asked Questions
Can I scrape multiple Crexi market pages?
Yes. Run the actor multiple times with different startUrl values or schedule separate tasks per market.
Why are some fields missing on some records?
Crexi does not show the same information on every listing. The actor removes empty values instead of saving placeholders.
Do I need detail collection for every run?
No. Card-level extraction is faster and is often enough for screening, monitoring, and export workflows.
How many pages can I scrape?
The actor will continue until it reaches results_wanted or max_pages, whichever comes first.
What should I do if a run becomes inconsistent?
Reduce concurrency by keeping the default settings, use residential proxies, and start from a focused results URL.
Support
For issues or feature requests, use the Apify Console issue and support flow attached to the actor.
Resources:
Legal Notice
Use this actor responsibly and make sure your usage complies with the target website terms and all applicable laws. Review collected data before acting on it in production workflows.