# Crexi Property Listings Scraping (`b2b_lead_generation/crexi-property-listings-scraping`) Actor

Get commercial real estate listings straight from Crexi, searchable by state, city, ZIP, price, size, and more. Get address, coordinates, price, broker, photo, and link, ready for your spreadsheet, database, or dashboard.

- **URL**: https://apify.com/b2b\_lead\_generation/crexi-property-listings-scraping.md
- **Developed by:** [B2B Lead Generation](https://apify.com/b2b_lead_generation) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Property Listings Scraper

![Crexi Property Listings Scraper](https://i.imgur.com/4zVo1Zs.png)

Pull commercial real estate listings sourced from Crexi as flat, ready-to-use rows. Filter across 230,000+ US commercial properties by state, city, ZIP, county, sale status, price, building size, lot size, and construction year. Every row lands as a clean JSON record with the full address, coordinates, asking price, brokerage, cover photo, and a direct Crexi link, so it drops straight into Excel, Google Sheets, SQL, or any BI tool.

No login, cookies, browser, or scraping setup. Set the filters, hit Start.

### Why this actor

- Curated CRE column names, nothing that looks like a raw HTML dump
- Auction, call-for-offers, sold, and off-market listings, not just for-sale
- Flat records with the fields CRE analysts actually want (asking price, sqft, lot, broker, brokerage, listed date)
- Two hard caps (`maxItems`, `requestTimeoutSecs`) so runs stay predictable
- Works out of the box

### Input parameters

Everything is optional and freely combinable. Leave the whole form empty to search the entire US.

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `stateCode` | string | `CA` | Two-letter US state code (CA, TX, NY). |
| `state` | string | | Full state name (California, Texas). |
| `city` | string | | City name. Matches across all states unless combined with `stateCode`. |
| `zipCode` | string | | Five-digit ZIP code. |
| `county` | string | | County name, e.g. Stanislaus County. |
| `countyCode` | string | | County FIPS code, e.g. 6037. |
| `address` | string | | Street address to match. |
| `saleStatus` | select | `for_sale` | One of `for_sale`, `call_for_offers`, `auction`, `sold`, `off_market`. |
| `sortBy` | select | | `newest_listed`, `oldest_listed`, `price_high_to_low`, `price_low_to_high`, or `recently_updated`. |
| `minAskingPrice` / `maxAskingPrice` | integer | | Asking price range in USD, inclusive. |
| `minBuildingSqft` / `maxBuildingSqft` | integer | | Building area range in square feet. |
| `minLotSqft` / `maxLotSqft` | integer | | Lot size range in square feet (1 acre = 43,560 sqft). |
| `minYearBuilt` / `maxYearBuilt` | integer | | Construction year range. |
| `startPage` | integer | `1` | Result page to start from (up to 200 listings per page). |
| `maxItems` | integer | `100` | Stop after this many listings (fetched in pages of 200). Max 1000. |
| `requestTimeoutSecs` | integer | `30` | Timeout per API request. |

### Example inputs

#### 1. Retail centers under $2M in Los Angeles County

```json
{
    "state": "California",
    "county": "Los Angeles County",
    "saleStatus": "for_sale",
    "maxAskingPrice": 2000000,
    "sortBy": "price_low_to_high",
    "maxItems": 200
}
````

#### 2. Large warehouses in Texas (25k+ sqft), newest first

```json
{
    "stateCode": "TX",
    "saleStatus": "for_sale",
    "minBuildingSqft": 25000,
    "sortBy": "newest_listed",
    "maxItems": 500
}
```

#### 3. Every active auction in Florida

```json
{
    "stateCode": "FL",
    "saleStatus": "auction",
    "sortBy": "recently_updated",
    "maxItems": 300
}
```

#### 4. Post-2000 commercial buildings in ZIP 33101 (Miami)

```json
{
    "zipCode": "33101",
    "saleStatus": "for_sale",
    "minYearBuilt": 2000,
    "maxItems": 100
}
```

#### 5. Recently sold comps in a single county (FIPS 6037)

```json
{
    "countyCode": "6037",
    "saleStatus": "sold",
    "sortBy": "newest_listed",
    "maxItems": 200
}
```

#### 6. Nationwide sweep of premium listings ($10M+)

```json
{
    "saleStatus": "for_sale",
    "minAskingPrice": 10000000,
    "sortBy": "price_high_to_low",
    "maxItems": 1000
}
```

#### 7. Land plays: 5+ acre lots in Arizona

```json
{
    "stateCode": "AZ",
    "saleStatus": "for_sale",
    "minLotSqft": 217800,
    "sortBy": "newest_listed",
    "maxItems": 250
}
```

#### 8. Paginating beyond 1,000 rows

Run A collects listings 1 to 1000, Run B picks up at listing 1001 by setting `startPage: 6` (page 6 with a page size of 200 equals rows 1001 to 1200).

```json
{
    "stateCode": "NY",
    "saleStatus": "for_sale",
    "sortBy": "newest_listed",
    "startPage": 6,
    "maxItems": 1000
}
```

### Output columns

Each listing is one flat row. The main columns:

| Column | Example |
|--------|---------|
| `listing_id` | `crexi_1000002` |
| `sale_status` | `for_sale` |
| `street_address` | `7101 Porter Rd` |
| `city` / `state` / `zip_code` | `Niagara Falls` / `NY` / `14304` |
| `county` | `Niagara County` |
| `latitude` / `longitude` | `43.108545` / `-78.983714` |
| `asking_price_usd` | `695000` |
| `building_sqft` / `lot_size_sqft` / `year_built` | building and lot details where Crexi provides them |
| `property_class` / `property_subtype` | `commercial` plus the Crexi subtype |
| `broker_name` / `brokerage_name` | listing agent and firm |
| `cover_image_url` / `primary_photo_url` / `all_photo_urls` | hero photo plus the rest of the gallery |
| `crexi_url` | direct link to the listing on crexi.com |
| `listed_on` / `last_updated_on` | listing and update dates |
| `data_source` | always `Crexi` for this actor |

### Sample output

Here is how a run looks in the Apify dataset preview:

![Sample dataset preview](https://i.imgur.com/Bi17ou7.png)

And the same record as raw JSON:

```json
{
    "listing_id": "crexi_1000002",
    "sale_status": "for_sale",
    "street_address": "7101 Porter Rd",
    "city": "Niagara Falls",
    "state": "NY",
    "zip_code": "14304",
    "county": "Niagara County",
    "latitude": 43.108545,
    "longitude": -78.983714,
    "asking_price_usd": 695000.0,
    "building_sqft": 12800,
    "lot_size_sqft": 43560,
    "year_built": 1978,
    "property_class": "commercial",
    "property_subtype": "Retail",
    "broker_name": "Ellicott Development",
    "brokerage_name": "Ellicott Development Co.",
    "cover_image_url": "https://images.crexi.com/assets/1000002/...jpg",
    "crexi_url": "https://www.crexi.com/properties/1000002/new-york-7101-porter-rd",
    "listed_on": "2022-11-30",
    "last_updated_on": "2024-05-18",
    "data_source": "Crexi"
}
```

### Use cases

- **Deal sourcing**: pull every commercial listing in a target county or ZIP, sort newest first, and pipe it into your acquisition workflow
- **Market analysis**: track asking prices and inventory in a metro area over time by scheduling weekly runs
- **Brokerage prospecting**: collect `broker_name` and `brokerage_name` across a region to build outreach lists
- **Auction & CFO tracking**: filter by `auction` or `call_for_offers` status to catch non-standard sale processes early
- **Comp research**: filter `sale_status: sold` with a tight geography to pull recent comps
- **Data enrichment**: join records to your own property database by address, ZIP, or coordinates

### Notes

- Commercial listings do not carry residential fields like beds/baths, so those arrive as null on purpose.
- `startPage` + `maxItems` is how you page past the 1,000-row-per-run ceiling.
- The `data_source` column is always `Crexi` for this actor; a future variant of this scraper may cover other sources and use the same column to distinguish them.

### More lead generation actors

If you liked this one, here are related actors from the same author for other B2B lead generation and data extraction workflows.

| Actor | Category |
|-------|----------|
| [Skip Tracing Property Records](https://apify.com/b2b_lead_generation/skip-tracing-property-records) | Real estate |
| [Realtor Properties Contact Email](https://apify.com/b2b_lead_generation/realtor-properties-contact-email) | Real estate |
| [Google Maps Email Extractor](https://apify.com/b2b_lead_generation/google-maps-email-extractor) | Local / GMB |
| [Chrome Extension Scraper (Email)](https://apify.com/b2b_lead_generation/chrome-extension-scraper-email) | Chrome Web Store |
| [Chrome Extension Email Extractor](https://apify.com/b2b_lead_generation/chrome-extension-email-extractor) | Chrome Web Store |
| [Shopify Website Scraper (Email)](https://apify.com/b2b_lead_generation/shopify-website-scraper-email) | E-commerce |
| [WooCommerce Website Scraper (Email)](https://apify.com/b2b_lead_generation/woocommerce-website-scraper-email) | E-commerce |
| [USA Business Leads Extractor](https://apify.com/b2b_lead_generation/usa-business-leads-extractor) | USA leads |
| [USA Professional Leads Hub](https://apify.com/b2b_lead_generation/usa-professional-leads-hub) | USA leads |
| [USA Medical Services Extractor](https://apify.com/b2b_lead_generation/usa-medical-services-extractor) | USA leads |
| [USA Beauty & Spa Extractor](https://apify.com/b2b_lead_generation/usa-beauty-spa-extractor) | USA leads |
| [USA Fitness Leads Hub](https://apify.com/b2b_lead_generation/usa-fitness-leads-hub) | USA leads |
| [USA Home Repair Leads](https://apify.com/b2b_lead_generation/usa-home-repair-leads) | USA leads |
| [USA Automotive Leads Hub](https://apify.com/b2b_lead_generation/usa-automotive-leads-hub) | USA leads |
| [USA Pet Services Extractor](https://apify.com/b2b_lead_generation/usa-pet-services-extractor) | USA leads |
| [UK Electrician Leads Extractor](https://apify.com/b2b_lead_generation/uk-electrician-leads-extractor) | UK leads |
| [AU Business Leads Search API](https://apify.com/b2b_lead_generation/au-business-leads-search-api) | Australia leads |

Skip the scraper build and get clean Crexi CRE data in minutes.

![Get started with the Crexi Property Listings Scraper](https://i.imgur.com/t08p20O.png)

# Actor input Schema

## `stateCode` (type: `string`):

Two-letter US state code, e.g. CA, TX, NY (case-insensitive).

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

Full US state name, e.g. California, Texas (case-insensitive). Alternative to State code.

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

City name. Matches across every state unless combined with State code.

## `zipCode` (type: `string`):

Five-digit US ZIP / postal code, e.g. 90012.

## `county` (type: `string`):

County name, e.g. Stanislaus County. Combine with State code to avoid cross-state name collisions.

## `countyCode` (type: `string`):

County FIPS code, e.g. 6037, for exact county targeting.

## `address` (type: `string`):

Street address to match, e.g. 2930 Sperry Ave.

## `saleStatus` (type: `string`):

Where the listing sits in the sale process. for\_sale covers On-Market and Highest & Best; call\_for\_offers and auction are distinct sale mechanisms; off\_market listings are no longer active.

## `sortBy` (type: `string`):

Order of the results. Leave empty for the API's default order.

## `minAskingPrice` (type: `integer`):

Minimum asking price in USD, inclusive.

## `maxAskingPrice` (type: `integer`):

Maximum asking price in USD, inclusive.

## `minBuildingSqft` (type: `integer`):

Minimum building area in square feet, inclusive.

## `maxBuildingSqft` (type: `integer`):

Maximum building area in square feet, inclusive.

## `minLotSqft` (type: `integer`):

Minimum lot size in square feet, inclusive. 1 acre = 43,560 sqft.

## `maxLotSqft` (type: `integer`):

Maximum lot size in square feet, inclusive. 1 acre = 43,560 sqft.

## `minYearBuilt` (type: `integer`):

Earliest construction year to include, inclusive.

## `maxYearBuilt` (type: `integer`):

Latest construction year to include, inclusive.

## `startPage` (type: `integer`):

Result page to start from (200 listings per page). Combine with Maximum listings to collect a later slice, e.g. Start page 6 with maxItems 1000 returns listings 1001-2000.

## `maxItems` (type: `integer`):

Stop after this many listings have been pushed to the dataset (fetched in pages of 200). Caps the run cost.

## `requestTimeoutSecs` (type: `integer`):

Timeout for each API request, in seconds.

## Actor input object example

```json
{
  "stateCode": "CA",
  "state": "California",
  "city": "Los Angeles",
  "zipCode": "90012",
  "county": "Stanislaus County",
  "countyCode": "6037",
  "address": "2930 Sperry Ave",
  "saleStatus": "for_sale",
  "minAskingPrice": 100000,
  "maxAskingPrice": 5000000,
  "minBuildingSqft": 1000,
  "maxBuildingSqft": 50000,
  "minLotSqft": 10000,
  "maxLotSqft": 435600,
  "minYearBuilt": 1980,
  "maxYearBuilt": 2026,
  "startPage": 1,
  "maxItems": 100,
  "requestTimeoutSecs": 30
}
```

# 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 = {
    "stateCode": "CA",
    "saleStatus": "for_sale"
};

// Run the Actor and wait for it to finish
const run = await client.actor("b2b_lead_generation/crexi-property-listings-scraping").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 = {
    "stateCode": "CA",
    "saleStatus": "for_sale",
}

# Run the Actor and wait for it to finish
run = client.actor("b2b_lead_generation/crexi-property-listings-scraping").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 '{
  "stateCode": "CA",
  "saleStatus": "for_sale"
}' |
apify call b2b_lead_generation/crexi-property-listings-scraping --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Crexi Property Listings Scraping",
        "description": "Get commercial real estate listings straight from Crexi, searchable by state, city, ZIP, price, size, and more. Get address, coordinates, price, broker, photo, and link, ready for your spreadsheet, database, or dashboard.",
        "version": "0.0",
        "x-build-id": "e9TdhJQ1ZYOy6axXH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/b2b_lead_generation~crexi-property-listings-scraping/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-b2b_lead_generation-crexi-property-listings-scraping",
                "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/b2b_lead_generation~crexi-property-listings-scraping/runs": {
            "post": {
                "operationId": "runs-sync-b2b_lead_generation-crexi-property-listings-scraping",
                "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/b2b_lead_generation~crexi-property-listings-scraping/run-sync": {
            "post": {
                "operationId": "run-sync-b2b_lead_generation-crexi-property-listings-scraping",
                "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": {
                    "stateCode": {
                        "title": "State code",
                        "type": "string",
                        "description": "Two-letter US state code, e.g. CA, TX, NY (case-insensitive)."
                    },
                    "state": {
                        "title": "State name",
                        "type": "string",
                        "description": "Full US state name, e.g. California, Texas (case-insensitive). Alternative to State code."
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "City name. Matches across every state unless combined with State code."
                    },
                    "zipCode": {
                        "title": "ZIP code",
                        "type": "string",
                        "description": "Five-digit US ZIP / postal code, e.g. 90012."
                    },
                    "county": {
                        "title": "County",
                        "type": "string",
                        "description": "County name, e.g. Stanislaus County. Combine with State code to avoid cross-state name collisions."
                    },
                    "countyCode": {
                        "title": "County FIPS code",
                        "type": "string",
                        "description": "County FIPS code, e.g. 6037, for exact county targeting."
                    },
                    "address": {
                        "title": "Street address",
                        "type": "string",
                        "description": "Street address to match, e.g. 2930 Sperry Ave."
                    },
                    "saleStatus": {
                        "title": "Sale status",
                        "enum": [
                            "for_sale",
                            "call_for_offers",
                            "auction",
                            "sold",
                            "off_market"
                        ],
                        "type": "string",
                        "description": "Where the listing sits in the sale process. for_sale covers On-Market and Highest & Best; call_for_offers and auction are distinct sale mechanisms; off_market listings are no longer active."
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "newest_listed",
                            "oldest_listed",
                            "price_high_to_low",
                            "price_low_to_high",
                            "recently_updated"
                        ],
                        "type": "string",
                        "description": "Order of the results. Leave empty for the API's default order."
                    },
                    "minAskingPrice": {
                        "title": "Minimum asking price (USD)",
                        "type": "integer",
                        "description": "Minimum asking price in USD, inclusive."
                    },
                    "maxAskingPrice": {
                        "title": "Maximum asking price (USD)",
                        "type": "integer",
                        "description": "Maximum asking price in USD, inclusive."
                    },
                    "minBuildingSqft": {
                        "title": "Minimum building sqft",
                        "type": "integer",
                        "description": "Minimum building area in square feet, inclusive."
                    },
                    "maxBuildingSqft": {
                        "title": "Maximum building sqft",
                        "type": "integer",
                        "description": "Maximum building area in square feet, inclusive."
                    },
                    "minLotSqft": {
                        "title": "Minimum lot size (sqft)",
                        "type": "integer",
                        "description": "Minimum lot size in square feet, inclusive. 1 acre = 43,560 sqft."
                    },
                    "maxLotSqft": {
                        "title": "Maximum lot size (sqft)",
                        "type": "integer",
                        "description": "Maximum lot size in square feet, inclusive. 1 acre = 43,560 sqft."
                    },
                    "minYearBuilt": {
                        "title": "Earliest year built",
                        "type": "integer",
                        "description": "Earliest construction year to include, inclusive."
                    },
                    "maxYearBuilt": {
                        "title": "Latest year built",
                        "type": "integer",
                        "description": "Latest construction year to include, inclusive."
                    },
                    "startPage": {
                        "title": "Start page",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Result page to start from (200 listings per page). Combine with Maximum listings to collect a later slice, e.g. Start page 6 with maxItems 1000 returns listings 1001-2000.",
                        "default": 1
                    },
                    "maxItems": {
                        "title": "Maximum listings to collect",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Stop after this many listings have been pushed to the dataset (fetched in pages of 200). Caps the run cost.",
                        "default": 100
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Timeout for each API request, in seconds.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
