{
  "openapi": "3.0.1",
  "info": {
    "title": "Crexi Scraper: Commercial Real Estate Listings For Sale & Lease",
    "description": "Scrape Crexi commercial real estate listings for sale and lease: price, size, address, property type, brokerage and dates. Filter by type, state, city, ZIP, price and cap rate. Monitor mode flags new listings, price drops and removals. Cap rate and NOI appear only when Crexi shows them. No login.",
    "version": "0.1",
    "x-build-id": "bcY86UtMoFylCDfSz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~crexi-listings-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-crexi-listings-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/getascraper~crexi-listings-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-crexi-listings-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/getascraper~crexi-listings-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-crexi-listings-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": {
          "listingType": {
            "title": "Listing type",
            "enum": [
              "sale",
              "lease",
              "both"
            ],
            "type": "string",
            "description": "Search properties for sale, properties for lease (space-level rents), or both. With both, Max listings is split between the two.",
            "default": "sale"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Only these asset classes. Lease listings support Retail, Office, Industrial, Land, Special Purpose and Restaurant; other types are skipped for lease searches. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "Retail",
                "Multifamily",
                "Office",
                "Industrial",
                "Hospitality",
                "Mixed Use",
                "Land",
                "Self Storage",
                "Mobile Home Park",
                "Senior Living",
                "Special Purpose",
                "Note/Loan",
                "Business for Sale",
                "Restaurant"
              ],
              "enumTitles": [
                "Retail",
                "Multifamily",
                "Office",
                "Industrial",
                "Hospitality",
                "Mixed Use",
                "Land",
                "Self Storage",
                "Mobile Home Park",
                "Senior Living",
                "Special Purpose",
                "Note/Loan",
                "Business for Sale",
                "Restaurant"
              ]
            }
          },
          "subtypes": {
            "title": "Property subtypes",
            "type": "array",
            "description": "Optional sub-categories such as Storefront, Shopping Center, Medical Office, Warehouse or Day Care/Nursery. Use the exact names shown on Crexi; an unknown name stops the run with a clear message.",
            "items": {
              "type": "string"
            }
          },
          "searchText": {
            "title": "Keyword search",
            "type": "string",
            "description": "Free text matched against listing names and descriptions, for example \"gas station\", \"net lease\" or \"opportunity zone\". Sale search only."
          },
          "propertyUrls": {
            "title": "Listing URLs or IDs",
            "type": "array",
            "description": "Fetch specific listings instead of searching: paste crexi.com/properties/... (sale) or crexi.com/lease/properties/... (lease) URLs, or bare numeric IDs. Filters are ignored when this is filled; full details and brokers are always returned.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States",
            "type": "array",
            "description": "Two-letter US state codes, for example TX, CA, FL. Combine with cities, counties or ZIP codes to narrow further.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "City names, for example Austin or Miami. Pair with a state because several states share city names.",
            "items": {
              "type": "string"
            }
          },
          "counties": {
            "title": "Counties",
            "type": "array",
            "description": "County names exactly as Crexi writes them, for example Travis County.",
            "items": {
              "type": "string"
            }
          },
          "zipCodes": {
            "title": "ZIP codes",
            "type": "array",
            "description": "5-digit ZIP codes, for example 78701. Good for neighborhood-level deal hunting.",
            "items": {
              "type": "string"
            }
          },
          "askingPriceMin": {
            "title": "Minimum asking price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest asking price for sale listings. Listings with no public price are excluded once a price filter is set."
          },
          "askingPriceMax": {
            "title": "Maximum asking price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price for sale listings."
          },
          "capRateMin": {
            "title": "Minimum cap rate (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Only sale listings whose cap rate is at least this value. Crexi evaluates this filter on its side even when the exact cap rate is hidden from the public page."
          },
          "capRateMax": {
            "title": "Maximum cap rate (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "Only sale listings whose cap rate is at most this value."
          },
          "pricePerSqFtMin": {
            "title": "Minimum price per sq ft (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Lowest sale price per square foot."
          },
          "pricePerSqFtMax": {
            "title": "Maximum price per sq ft (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Highest sale price per square foot."
          },
          "sqFtMin": {
            "title": "Minimum building size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest building area, or smallest available space for lease searches."
          },
          "sqFtMax": {
            "title": "Maximum building size (sq ft)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest building area, or largest available space for lease searches."
          },
          "acreageMin": {
            "title": "Minimum lot size (acres)",
            "minimum": 0,
            "type": "number",
            "description": "Smallest land area in acres. Useful for land and development sites."
          },
          "acreageMax": {
            "title": "Maximum lot size (acres)",
            "minimum": 0,
            "type": "number",
            "description": "Largest land area in acres."
          },
          "leaseRateUnit": {
            "title": "Lease rate unit",
            "enum": [
              "SqFtPerYear",
              "SqFtPerMonth",
              "AcrePerYear",
              "AcrePerMonth"
            ],
            "type": "string",
            "description": "Unit for the lease rate filters below, and the unit the rates are quoted in.",
            "default": "SqFtPerYear"
          },
          "leaseRateMin": {
            "title": "Minimum lease rate",
            "minimum": 0,
            "type": "number",
            "description": "Lowest asking rent in the chosen unit. Lease searches only."
          },
          "leaseRateMax": {
            "title": "Maximum lease rate",
            "minimum": 0,
            "type": "number",
            "description": "Highest asking rent in the chosen unit. Lease searches only."
          },
          "buildingClasses": {
            "title": "Building classes",
            "type": "array",
            "description": "Building quality class, A (best) to D.",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "B",
                "C",
                "D"
              ],
              "enumTitles": [
                "Class A",
                "Class B",
                "Class C",
                "Class D"
              ]
            }
          },
          "tenancy": {
            "title": "Tenancy",
            "type": "array",
            "description": "Single-tenant, multi-tenant or vacant. Sale searches support Single, Multi and Vacant; lease searches support Single and Multiple.",
            "items": {
              "type": "string",
              "enum": [
                "Single",
                "Multi",
                "Multiple",
                "Vacant"
              ],
              "enumTitles": [
                "Single tenant",
                "Multi tenant (sale)",
                "Multiple tenants (lease)",
                "Vacant (sale)"
              ]
            }
          },
          "investmentLeaseTypes": {
            "title": "Existing lease structure (sale)",
            "type": "array",
            "description": "For investment sales: the lease structure already in place, such as NNN or Absolute Net.",
            "items": {
              "type": "string",
              "enum": [
                "NNN",
                "Net",
                "Absolute Net",
                "Gross",
                "Ground"
              ],
              "enumTitles": [
                "NNN",
                "Net",
                "Absolute Net",
                "Gross",
                "Ground"
              ]
            }
          },
          "opportunityZoneOnly": {
            "title": "Opportunity Zone only",
            "type": "boolean",
            "description": "Keep only listings located in a federal Opportunity Zone.",
            "default": false
          },
          "brokerage": {
            "title": "Brokerage name",
            "type": "string",
            "description": "Only listings from brokerages whose name starts with this text, for example CBRE or Marcus & Millichap."
          },
          "listingStatuses": {
            "title": "Listing statuses",
            "type": "array",
            "description": "Which sale listing states to keep: On-Market, Auction, Contract Pending or Under Contract. Leave empty for active listings (On-Market and Auction). Lease listings are returned with the status Crexi reports and are not filtered by this field.",
            "items": {
              "type": "string",
              "enum": [
                "On-Market",
                "Auction",
                "Contract Pending",
                "Under Contract"
              ],
              "enumTitles": [
                "On-Market",
                "Auction",
                "Contract Pending",
                "Under Contract"
              ]
            }
          },
          "listedWithinDays": {
            "title": "Listed within the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Only listings that went live on Crexi in the last N days. Combine with a daily schedule to catch fresh deals, or use New listings mode below."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "recentlyUpdated",
              "recommended",
              "price",
              "capRate",
              "squareFootage",
              "noi"
            ],
            "type": "string",
            "description": "Order of the results. Newest puts freshly listed properties first. Price, cap rate and NOI sorting apply to sale searches; lease searches fall back to newest for those.",
            "default": "newest"
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "Descending",
              "Ascending"
            ],
            "type": "string",
            "description": "Descending shows the newest, most expensive or largest first.",
            "default": "Descending"
          },
          "mode": {
            "title": "Run mode",
            "enum": [
              "all",
              "newOnly",
              "monitor"
            ],
            "type": "string",
            "description": "All listings returns everything that matches. New listings only returns listings not seen in earlier runs with the same monitor name. Monitor also reports price drops, price increases and status changes on listings seen before.",
            "default": "all"
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Label that keeps the saved listing history for this search. Use a different name for each saved search. The first run with a new name lists current matches as new.",
            "default": "default"
          },
          "reportRemoved": {
            "title": "Report removed listings",
            "type": "boolean",
            "description": "In monitor mode, also emit listings that were seen before but are no longer in the results. Only works when the run covers every matching listing (Max listings at or above the match count).",
            "default": false
          },
          "includeDetails": {
            "title": "Full details",
            "type": "boolean",
            "description": "Adds one request per listing: full description, investment highlights, property facts (year built, zoning, cap rate, NOI, occupancy when the broker made them public) and, for lease, every available suite with size and rate.",
            "default": false
          },
          "includeBrokers": {
            "title": "Broker details",
            "type": "boolean",
            "description": "Adds the listing brokers: name, brokerage, brokerage website and address, license numbers and profile ID. Phone numbers and emails are not public on Crexi and are not returned.",
            "default": false
          },
          "includePhotos": {
            "title": "Photo gallery",
            "type": "boolean",
            "description": "Adds the full list of photo URLs for each listing (the search result only carries one thumbnail).",
            "default": false
          },
          "maxItems": {
            "title": "Max listings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Maximum number of listings to return (in the monitoring modes: the number of newest listings checked per run). Queries above 1,499 matches are split automatically into date windows. Free plan runs are capped at 25.",
            "default": 25
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Datacenter proxy is enough for this source. No account, cookie or login is ever needed.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}