Crexi Property Scraper avatar

Crexi Property Scraper

Pricing

Pay per usage

Go to Apify Store
Crexi Property Scraper

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

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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

ParameterTypeRequiredDefaultDescription
startUrlStringNo"https://www.crexi.com/properties?pageSize=60"Crexi sale results URL to scrape. Use a filtered market or property-type page if needed.
keywordStringNo-Optional keyword filter applied to title, summary, address, and property type after collection.
locationStringNo-Optional location filter applied to address and summary after collection.
collectDetailsBooleanNofalseOpen detail pages to collect marketing description, contacts, brochure links, property facts, and gallery images.
results_wantedIntegerNo20Maximum number of properties to save.
max_pagesIntegerNo3Safety cap on the number of Crexi result pages to visit.
pageSizeIntegerNo60Number of results requested per page. Current practical maximum is 60.
proxyConfigurationObjectNoResidential proxy presetProxy configuration. Residential proxies are recommended for the most consistent runs.

Output Data

Each item in the dataset can contain the following fields:

FieldTypeDescription
listing_idStringCrexi listing identifier.
titleStringListing title.
addressStringProperty address and market.
price_textStringDisplayed price label, such as Unpriced or a dollar amount.
price_valueNumberParsed numeric price when available.
property_typeStringPrimary property type from the results card.
metric_lineStringKey metrics from the results card, such as size or cap rate text.
summaryStringShort listing summary from the results page.
image_urlStringPrimary image URL from the results page.
urlStringAbsolute Crexi property URL.
page_numberIntegerResults page where the property was found.
days_on_marketStringDays-on-market text from the detail page when available.
last_updatedStringRelative update timestamp from the detail page when available.
marketing_descriptionStringExpanded marketing description from the detail page when enabled.
brochure_linksArrayBrochure-related links such as View Flyer or View OM when available.
contactsArrayListing contacts collected from the detail page when enabled.
image_urlsArrayGallery image URLs from the detail page when enabled.
property_factsObjectProperty facts collected from the detail page when enabled.
search_urlStringResults page URL that produced the item.
collected_atStringTimestamp 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 pageSize at 60 to reduce pagination overhead.

Use Detail Collection Selectively

  • Keep collectDetails disabled 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: 20 and max_pages: 2 for 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:


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.