# Crexi Commercial Real Estate Scraper (`solidcode/crexi-scraper`) Actor

\[💰 $1.30 / 1K] Extract commercial real estate listings from Crexi.com — addresses, prices, property types, broker contacts, images, and more. Filter by deal type, property type, state, and price range.

- **URL**: https://apify.com/solidcode/crexi-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Real estate, Developer tools, Automation
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.30 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Crexi Commercial Real Estate Scraper

Pull commercial real estate listings from Crexi.com at scale — pricing, property details, broker names and brokerage info, cap rates, occupancy, and full-resolution photos for every for-sale, for-lease, and auction listing across all 50 US states. Built for commercial real estate investors, lenders, brokers, market researchers, and lead-generation agencies who need structured Crexi data without manually clicking through thousands of search pages.

### Why This Scraper?

- **10 commercial property categories in one run** — Office, Retail, Industrial, Multifamily, Land, Hospitality, Special Purpose, Healthcare, Self Storage, and Mobile Home Park.
- **Three deal types covered** — For Sale, For Lease, and Auction listings, each retrievable independently or all at once in a single run.
- **All 50 US states + Washington DC** — nationwide coverage with a single state-dropdown filter; no per-state configuration required.
- **Broker name and brokerage company captured for every listing** — including a direct link to the broker's Crexi profile page.
- **Full-resolution photo gallery URLs** — every listing's image set returned as a ready-to-download array of high-res URLs (3000×2000).
- **Key financial metrics on every row** — asking price, cap rate, occupancy percentage, price per square foot, and lease rate where published.
- **Property fundamentals always present** — square footage, year built, property subtype (e.g. Warehouse, Shopping Center, Medical Office), and county.
- **Filter by city or paste a Crexi URL** — narrow results to a specific city (e.g. "Austin", "Los Angeles") or paste any filtered Crexi search URL directly for advanced queries.

### Use Cases

**Investment Sourcing**
- Screen hundreds of NNN retail deals by cap rate and asking price in one run
- Find value-add multifamily assets below a price ceiling in target markets
- Identify industrial listings with high occupancy across Sun Belt states
- Pull auction listings to build a distressed-asset opportunity pipeline

**Market Research**
- Map commercial inventory by state, county, and property type
- Track average asking prices and cap rates across MSAs
- Benchmark property subtypes (flex vs. warehouse vs. manufacturing) within a market
- Monitor new listing activity over time by running on a schedule

**Lead Generation**
- Build broker contact lists by market and property type (name + brokerage + profile URL)
- Identify active listing agents in target geographies for outreach campaigns
- Find owner-represented listings (no brokerage listed) for direct approaches

**Portfolio Monitoring**
- Watch specific markets for new inventory matching your buy-box
- Cross-reference listings against your existing portfolio addresses
- Track price reductions by comparing runs over time

**Lender Underwriting**
- Pull comparable sales and lease comps by property type, subtype, and geography
- Gather occupancy and year-built data for underwriting models
- Collect cap rate data points to calibrate discount-rate assumptions

**Competitive Analysis**
- Benchmark competitor brokerages by listing volume and geography
- Identify which property categories dominate inventory in a given state
- Analyze listing age distribution to spot slow-moving product types

### Getting Started

#### Simplest — Browse by State and Deal Type

```json
{
    "dealType": "sale",
    "state": "CA"
}
````

Returns all for-sale commercial listings in California (up to the default 200-result cap).

#### Mid-level — Add Property Type and Price Filters

```json
{
    "dealType": "sale",
    "state": "TX",
    "propertyTypes": ["Office", "Retail"],
    "priceMin": 1000000,
    "maxResults": 100
}
```

Returns Texas office and retail listings priced at $1M or above, capped at 100 results.

#### City-Level — Target a Specific Market

```json
{
    "dealType": "sale",
    "city": "Austin",
    "state": "TX",
    "propertyTypes": ["Multifamily"],
    "maxResults": 50
}
```

Returns multifamily listings in Austin, TX. Combine `city` and `state` for the tightest geographic scope.

#### Advanced — Paste a Crexi URL Directly

```json
{
    "startUrls": ["https://www.crexi.com/properties?states=CA&types=Office"],
    "maxResults": 500
}
```

Any filters you applied in the Crexi UI are preserved. Paste the URL from your browser and the scraper inherits your exact search configuration.

### Input Reference

#### Search

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `city` | String | *(none)* | Filter by city name (e.g. "Los Angeles", "Austin"). Combine with `state` for best results. Ignored when `startUrls` is provided. |
| `startUrls` | List | *(empty)* | One or more Crexi.com search result URLs. Overrides `city` when provided. |

#### Filters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `dealType` | Select | `For Sale` | **For Sale**, **For Lease**, **Auction**, or **All Deal Types**. "All Deal Types" returns up to `maxResults` Sale AND up to `maxResults` Lease rows (up to 2× total). Auction listings are rare (~1–2% of inventory) so auction runs scan more pages, increasing cost. |
| `propertyTypes` | Multi-select | *(all)* | Limit to one or more of: Multifamily, Office, Retail, Industrial, Land, Hospitality, Special Purpose, Healthcare, Self Storage, Mobile Home Park. Leave empty to include all types. |
| `state` | Select | *(all states)* | Limit results to a specific US state (Alabama through Wyoming + Washington DC). Leave blank to search nationwide. |
| `priceMin` | Integer | *(none)* | Minimum asking price in USD. Leave blank for no minimum. |
| `priceMax` | Integer | *(none)* | Maximum asking price in USD. Leave blank for no maximum. |

#### Limits

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `maxResults` | Integer | `200` | Maximum listings to collect. The last page is kept whole, so the final count may slightly exceed this. Set to `0` for no cap. |

### Output

Each row represents one commercial listing. Below is a representative output record:

```json
{
  "id": 751699,
  "name": "T-Mobile Outparcel to Walmart",
  "status": "On-Market",
  "dealType": "Sale",
  "listingUrl": "https://www.crexi.com/properties/751699/california-walmart-plaza-outparcel",
  "propertyType": "Retail",
  "propertySubType": "Shopping Center",
  "description": "<p>The <strong>Walmart Plaza Shopping Center</strong>...</p>",
  "activatedAt": "2022-02-01T05:40:50.2Z",
  "updatedAt": "2026-04-04T20:08:42.857Z",
  "address": "2920 Main St",
  "city": "Susanville",
  "state": "CA",
  "zip": "96130",
  "county": "Lassen County",
  "latitude": 40.40804333639934,
  "longitude": -120.6347412391219,
  "price": 1140000.0,
  "priceFormatted": "$1,140,000",
  "pricePerSqft": null,
  "leaseRate": null,
  "sqft": 6500,
  "lotSizeAcres": null,
  "units": null,
  "yearBuilt": 1997,
  "capRate": null,
  "occupancy": 50.0,
  "brokerName": "Heath Charamuga",
  "brokerId": 7123,
  "brokerProfileUrl": "https://www.crexi.com/brokers/heathc",
  "brokerageName": "Epic Real Estate Advisors, Inc",
  "brokerageLogoUrl": "https://images.crexi.com/user-accounts/...",
  "primaryImageUrl": "https://images.crexi.com/assets/751699/...jpg",
  "imageUrls": ["https://images.crexi.com/assets/751699/...jpg", "..."],
  "flyerUrl": null,
  "videoUrl": null
}
```

#### Core & Identity Fields

| Field | Type | Description |
| --- | --- | --- |
| `id` | Integer | Crexi listing ID |
| `name` | String | Listing title as shown on Crexi |
| `status` | String | Listing status (e.g. `On-Market`) |
| `dealType` | String | `Sale`, `Lease`, or `Auction` |
| `listingUrl` | String | Full URL to the listing on Crexi |
| `activatedAt` | String | ISO 8601 date when listing went live |
| `updatedAt` | String | ISO 8601 date of last update |

#### Address & Location Fields

| Field | Type | Description |
| --- | --- | --- |
| `address` | String | Street address |
| `city` | String | City |
| `state` | String | 2-letter state code |
| `zip` | String | ZIP code |
| `county` | String | County name |
| `latitude` | Float | Latitude coordinate |
| `longitude` | Float | Longitude coordinate |

#### Pricing & Financial Fields

| Field | Type | Description |
| --- | --- | --- |
| `price` | Float | Asking price in USD (sale listings) |
| `priceFormatted` | String | Human-readable price (e.g. `$1,140,000`) |
| `pricePerSqft` | Float | Price per square foot (when available) |
| `leaseRate` | Float | Lease rate (lease listings) |
| `capRate` | Float | Capitalization rate as a percentage (when published) |
| `occupancy` | Float | Occupancy percentage (when published) |

#### Property Details Fields

| Field | Type | Description |
| --- | --- | --- |
| `propertyType` | String | Top-level category (e.g. `Retail`, `Industrial`) |
| `propertySubType` | String | Subtype (e.g. `Shopping Center`, `Warehouse`, `Medical Office`) |
| `description` | String | Full listing description (may include HTML) |
| `sqft` | Integer | Rentable square footage |
| `lotSizeAcres` | Float | Lot size in acres (when available) |
| `units` | Integer | Unit count for multifamily (when available) |
| `yearBuilt` | Integer | Year of construction (when available) |

#### Broker Fields

| Field | Type | Description |
| --- | --- | --- |
| `brokerName` | String | Listing broker's name |
| `brokerId` | Integer | Crexi internal broker ID |
| `brokerProfileUrl` | String | URL to the broker's Crexi profile |
| `brokerageName` | String | Brokerage company name |
| `brokerageLogoUrl` | String | URL to the brokerage logo image |

#### Media Fields

| Field | Type | Description |
| --- | --- | --- |
| `primaryImageUrl` | String | Main listing photo URL (3000×2000 resolution) |
| `imageUrls` | Array | All photo URLs for the listing (full-resolution) |
| `flyerUrl` | String | Marketing flyer URL (when uploaded by listing agent — often empty) |
| `videoUrl` | String | Video tour URL (when uploaded by listing agent — often empty) |

### Tips for Best Results

- **For lease searches, set `dealType` to `For Lease`** — lease results are not included in the default For Sale run. If you need both deal types, select **All Deal Types**.
- **Paste a pre-filtered Crexi URL for complex searches** — apply all your location, property type, and price filters directly on Crexi.com, then paste the resulting URL into `startUrls`. This is the most reliable method for highly specific queries.
- **Set `maxResults` to `0` for full market pulls** — the default cap of 200 is designed for quick test runs. Removing the cap lets you collect every matching listing across hundreds of pages.
- **Use `priceMin` to filter out land and vacant lot listings** — unpriced or very low-priced listings often represent land deals or partial-interest stakes. A `priceMin` of `500000` quickly narrows results to investable assets.
- **Cap rate and occupancy fields are publisher-dependent** — brokers control which financial metrics they disclose. Expect roughly 30–60% fill rates for `capRate` and `occupancy` depending on the property type and market.
- **For multifamily deals, filter by `propertyTypes: ["Multifamily"]`** — then sort the output by `price` and divide by `sqft` for quick per-square-foot screening across apartment listings.
- **Schedule recurring runs to track new inventory** — pair this actor with Apify's scheduling feature to pull fresh listings daily or weekly, then compare against your previous dataset to surface new additions.

### Pricing

**$1.30 per 1,000 results — no compute charges. You only pay per result returned.**

| Listings | Cost |
| --- | --- |
| 100 | $0.13 |
| 1,000 | $1.30 |
| 10,000 | $13.00 |
| 100,000 | $130.00 |

### Integrations

Connect your Crexi data to the tools you already use:

- **Zapier** — trigger workflows when new listings are collected (CRM updates, Slack alerts, email notifications)
- **Make (formerly Integromat)** — route listing data into Google Sheets, Airtable, Notion, or any custom pipeline
- **Google Sheets** — use the Apify Google Sheets integration to stream results directly into a spreadsheet
- **Apify API** — call the actor programmatically and retrieve results via the Apify REST API or client SDKs
- **Webhooks** — configure a webhook to POST results to your own endpoint as soon as each run completes

### Legal & Ethical Use

This actor collects publicly available listing data from Crexi.com. Use it in accordance with Crexi's Terms of Service and all applicable laws. Do not use collected data for spam, harassment, or any purpose that violates the privacy or rights of brokers or property owners. The actor does not collect any login-gated or private information — broker phone numbers and email addresses are not available to unauthenticated users and are not included in the output.

# Actor input Schema

## `city` (type: `string`):

Filter by city name (e.g. "Los Angeles", "Austin", "Chicago"). Combine with the State filter below for the most precise results. Ignored when you paste URLs.

## `startUrls` (type: `array`):

Paste one or more Crexi.com search result URLs. Any filters you applied on Crexi (property type, price, location) will be respected. When provided, these override the Search Query above.

## `dealType` (type: `string`):

Whether to collect sale listings, lease listings, auction listings, or all types. When 'All Deal Types' is selected, the actor returns up to maxResults Sale listings AND up to maxResults Lease listings (up to 2× total rows). Auction listings are rare on Crexi (~1–2% of total inventory), so auction runs scan more pages to surface results — increasing run cost compared to Sale or Lease.

## `propertyTypes` (type: `array`):

Only collect listings of these commercial property types. Leave empty to include all types.

## `state` (type: `string`):

Limit results to a specific US state. Leave empty to search nationwide.

## `priceMin` (type: `integer`):

Only include listings at or above this asking price. Leave empty for no minimum.

## `priceMax` (type: `integer`):

Only include listings at or below this asking price. Leave empty for no maximum.

## `maxResults` (type: `integer`):

Maximum number of listings to collect. The actor stops requesting new pages once this number is reached (the last page is kept whole, so the final count may slightly exceed this). Set to 0 for no cap.

## Actor input object example

```json
{
  "startUrls": [],
  "dealType": "sale",
  "propertyTypes": [],
  "maxResults": 40
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped listings with key fields: address, price, property type, deal type, broker, and listing URL.

## `detail` (type: `string`):

All fields per listing including coordinates, media URLs, broker contacts, and property characteristics.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [],
    "dealType": "sale",
    "propertyTypes": [],
    "state": "",
    "maxResults": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/crexi-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "dealType": "sale",
    "propertyTypes": [],
    "state": "",
    "maxResults": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/crexi-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "dealType": "sale",
  "propertyTypes": [],
  "state": "",
  "maxResults": 40
}' |
apify call solidcode/crexi-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/crexi-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Crexi Commercial Real Estate Scraper",
        "description": "[💰 $1.30 / 1K] Extract commercial real estate listings from Crexi.com — addresses, prices, property types, broker contacts, images, and more. Filter by deal type, property type, state, and price range.",
        "version": "1.0",
        "x-build-id": "y73vhNPYA8HldvJrD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~crexi-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-crexi-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~crexi-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-crexi-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~crexi-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-crexi-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "Filter by city name (e.g. \"Los Angeles\", \"Austin\", \"Chicago\"). Combine with the State filter below for the most precise results. Ignored when you paste URLs."
                    },
                    "startUrls": {
                        "title": "Crexi URLs",
                        "type": "array",
                        "description": "Paste one or more Crexi.com search result URLs. Any filters you applied on Crexi (property type, price, location) will be respected. When provided, these override the Search Query above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "dealType": {
                        "title": "Deal Type",
                        "enum": [
                            "sale",
                            "lease",
                            "auction",
                            "all"
                        ],
                        "type": "string",
                        "description": "Whether to collect sale listings, lease listings, auction listings, or all types. When 'All Deal Types' is selected, the actor returns up to maxResults Sale listings AND up to maxResults Lease listings (up to 2× total rows). Auction listings are rare on Crexi (~1–2% of total inventory), so auction runs scan more pages to surface results — increasing run cost compared to Sale or Lease.",
                        "default": "sale"
                    },
                    "propertyTypes": {
                        "title": "Property Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Only collect listings of these commercial property types. Leave empty to include all types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "Multifamily",
                                "Office",
                                "Retail",
                                "Industrial",
                                "Land",
                                "Hospitality",
                                "SpecialPurpose",
                                "Healthcare",
                                "SelfStorage",
                                "MobileHomePark"
                            ],
                            "enumTitles": [
                                "Multifamily (apartments, residential income)",
                                "Office",
                                "Retail (shopping centers, strip malls)",
                                "Industrial (warehouse, manufacturing, flex)",
                                "Land (development sites, agricultural)",
                                "Hospitality (hotels, motels)",
                                "Special Purpose (church, school, gas station)",
                                "Healthcare (medical office, senior living)",
                                "Self Storage",
                                "Mobile Home Park"
                            ]
                        },
                        "default": []
                    },
                    "state": {
                        "title": "State",
                        "enum": [
                            "",
                            "AL",
                            "AK",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "FL",
                            "GA",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "OH",
                            "OK",
                            "OR",
                            "PA",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY",
                            "DC"
                        ],
                        "type": "string",
                        "description": "Limit results to a specific US state. Leave empty to search nationwide."
                    },
                    "priceMin": {
                        "title": "Minimum Price ($)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings at or above this asking price. Leave empty for no minimum."
                    },
                    "priceMax": {
                        "title": "Maximum Price ($)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings at or below this asking price. Leave empty for no maximum."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of listings to collect. The actor stops requesting new pages once this number is reached (the last page is kept whole, so the final count may slightly exceed this). Set to 0 for no cap.",
                        "default": 200
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
