Crexi Property Details Scraper avatar

Crexi Property Details Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Crexi Property Details Scraper

Crexi Property Details Scraper

Get full Crexi commercial property details from a list of property IDs. Fetches listings in parallel and returns flat records with asking price, cap rate, NOI, lease type and term, tenants, address with coordinates, and marketing text, ready for Excel, SQL, or any BI tool.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

B2B Lead Generation

B2B Lead Generation

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Crexi Property Details: Full Commercial Listing Data by Property ID

This actor takes one or more Crexi property IDs and returns the complete listing detail for each as a single flat record. You get the asking price, cap rate, NOI, lease terms, tenants, full address with coordinates, investment highlights, and marketing description, all as ready-to-use columns instead of nested JSON. IDs are fetched in parallel, so a batch of 50 properties takes seconds, not minutes.

How it works

Paste property IDs into the input, one per line. The actor fetches each listing's detail page data concurrently, flattens the nested response into flat fields, and pushes one record per property to the dataset. A failed ID (removed listing, timeout) is logged and skipped without affecting the rest of the batch.

Both ID formats work and can be mixed:

  • 2340253 (the numeric ID from a Crexi listing URL)
  • crexi_2340253 (the property_id returned by the Crexi Property Listings actor)

Duplicates resolve to one fetch, so you can paste ID lists without cleaning them first.

Input parameters

FieldTypeDefaultDescription
propertyIdslist of stringsProperty IDs, one per line. Up to 1,000 per run. Required.
maxConcurrencyinteger5How many properties to fetch in parallel (max 20).
requestTimeoutSecsinteger30Timeout per request, in seconds.
proxyConfigurationobjectNo proxyOptional. Switch to Residential if requests start getting blocked.

What data does this actor extract?

Each record has 80+ flat fields. They come in three groups:

Identity and location

FieldExample
property_id / crexi_idcrexi_2340253 / 2340253
nameDutch Bros Ground Lease
statusActive
address, city, county, state_code, zip2930 Sperry Ave, Patterson, Stanislaus County, CA, 95363
latitude / longitude37.4645 / -121.1751
crexi_urldirect link to the listing
thumbnailUrlprimary photo URL

Deal terms in two flavors. Display strings under detail_* and typed numeric values under summary_*, so spreadsheets get readable text and pipelines get sortable numbers:

Display fieldExampleTyped fieldExample
detail_asking_price$1,534,000askingPrice1534000.0
detail_cap_rate4.50%summary_cap_rate4.5
detail_noi$69,000summary_net_operating_income69000.0
detail_price_per_sqft$1,614.74summary_price_per_sq_ft1614.74
detail_lease_term15.1 yearssummary_lease_term15.1
detail_lot_size_acres0.5summary_lot_size0.5

Plus lease type, tenancy, tenants, rent bumps, ground lease flag, lease commencement and expiration dates, investment type, year built, and square footage in both forms.

Marketing text and flags. investment_highlights and marketing_description arrive as clean plain text (HTML stripped). Boolean flags include isInOpportunityZone, hasOM, hasFlyer, hasVirtualTour, isSold, and isPaused.

Sample output

{
"property_id": "crexi_2340253",
"name": "Dutch Bros Ground Lease",
"status": "Active",
"address": "2930 Sperry Ave",
"city": "Patterson",
"state_code": "CA",
"zip": "95363",
"askingPrice": 1534000.0,
"summary_cap_rate": 4.5,
"summary_net_operating_income": 69000.0,
"detail_lease_type": "Absolute NNN",
"detail_lease_term": "15.1 years",
"tenants": "Starbucks, Dutch Bros. Coffee",
"detail_rent_bumps": "10% Every 5 Years",
"investment_highlights": "Prime Retail Location: High-visibility and easily accessible location...",
"crexi_url": "https://www.crexi.com/properties/2340253/california-dutch-bros-ground-lease-grocery-outlet-outparcel"
}

Use cases

  • Deal underwriting: pull cap rate, NOI, lease term, and rent bumps for a shortlist of properties into one spreadsheet
  • Pipeline enrichment: run the Crexi Property Listings actor for a region, then feed its property_id values here for full lease-level detail
  • Tenant research: extract tenant names and lease structures across many net-lease listings at once
  • Comp building: collect price per square foot, year built, and lot size for properties in a submarket
  • Monitoring: re-run the same ID list on a schedule and diff status, askingPrice, and updatedOn

FAQ

How many properties can I look up in one run? Up to 1,000 IDs per run. Duplicates count once.

What happens if an ID does not exist anymore? That ID is logged as failed and skipped. The run continues, and the final status message lists which IDs failed.

What is the difference between detail_ and summary_ fields? They carry the same facts in two forms. detail_cap_rate is the display string (4.50%), summary_cap_rate is the number (4.5). Use detail_* for reports and summary_* for filtering, sorting, or math.

Why are some fields missing on certain properties? Listings only include the facts the broker published. A property without a lease section has no lease fields; the columns simply stay empty for that record.

Do I need a proxy? Usually not. If large batches start failing, switch the proxy setting to Residential and lower the concurrency.

Where do the IDs come from? From a Crexi listing URL (the number after /properties/), or from the property_id field of the Crexi Property Listings actor, which searches listings by state, city, ZIP, county, price, and size.

Turn a list of Crexi property IDs into structured commercial real estate data with one run.