{
  "openapi": "3.0.1",
  "info": {
    "title": "Cushman & Wakefield Scraper - Commercial Property Listings",
    "description": "Scrape cushmanwakefield.com, Cushman & Wakefield's commercial real estate listings in 33 countries: office, industrial, retail and land for lease or sale with size, price, coordinates, photos, available spaces and brochures, plus city offices and MarketBeat reports. Export JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "fpO8Ko1wxUf0RlMqh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~cushmanwakefield-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-cushmanwakefield-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/recordsdata~cushmanwakefield-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-cushmanwakefield-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/recordsdata~cushmanwakefield-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-cushmanwakefield-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": {
          "mode": {
            "title": "What do you want to collect?",
            "enum": [
              "listings",
              "urls",
              "offices",
              "reports"
            ],
            "type": "string",
            "description": "Properties for rent or sale = the commercial listings catalog (most common). Pages you paste = specific Cushman & Wakefield links. City offices = address, phone and hours of each office. Market reports = MarketBeat and other research pages.",
            "default": "listings"
          },
          "maxItems": {
            "title": "Max results (free plan: 10)",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops after this many rows, for example 50. Free Apify plans are capped at 10 items per run.",
            "default": 50
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Which country sites to read, for example United States. Listings default to the United States (about two thirds of the catalog). In offices and reports modes, empty means every country.",
            "items": {
              "type": "string",
              "enum": [
                "united-states",
                "canada",
                "australia",
                "thailand",
                "brazil",
                "vietnam",
                "belgium",
                "indonesia",
                "india",
                "singapore",
                "mexico",
                "united-kingdom",
                "luxembourg",
                "japan",
                "philippines",
                "greater-china",
                "south-korea",
                "new-zealand",
                "ireland",
                "netherlands",
                "germany",
                "spain",
                "portugal",
                "italy",
                "poland",
                "czech-republic",
                "hungary",
                "slovakia",
                "sweden",
                "finland",
                "argentina",
                "chile",
                "colombia",
                "peru"
              ],
              "enumTitles": [
                "United States",
                "Canada",
                "Australia",
                "Thailand",
                "Brazil",
                "Vietnam",
                "Belgium",
                "Indonesia",
                "India",
                "Singapore",
                "Mexico",
                "United Kingdom",
                "Luxembourg",
                "Japan",
                "Philippines",
                "Greater China",
                "South Korea",
                "New Zealand",
                "Ireland",
                "Netherlands",
                "Germany",
                "Spain",
                "Portugal",
                "Italy",
                "Poland",
                "Czech Republic",
                "Hungary",
                "Slovakia",
                "Sweden",
                "Finland",
                "Argentina",
                "Chile",
                "Colombia",
                "Peru"
              ]
            },
            "default": [
              "united-states"
            ]
          },
          "operation": {
            "title": "Rent or sale",
            "enum": [
              "any",
              "rent",
              "sale"
            ],
            "type": "string",
            "description": "Rent / lease, sale, or both.",
            "default": "any"
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Office, industrial, retail, land or other. Empty means all types.",
            "items": {
              "type": "string",
              "enum": [
                "office",
                "industrial",
                "retail",
                "land",
                "other"
              ],
              "enumTitles": [
                "Office",
                "Industrial and warehouse",
                "Retail",
                "Land and development",
                "Other (hotel, healthcare, mixed use, multifamily...)"
              ]
            },
            "default": []
          },
          "locations": {
            "title": "Cities, states or provinces",
            "type": "array",
            "description": "For example denver, colorado, toronto, sydney. Matches the words in listing addresses (properties) or the city in the page address (offices, reports). Empty means no place filter.",
            "items": {
              "type": "string"
            }
          },
          "minAreaM2": {
            "title": "Min area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at least this many square meters, for example 1000."
          },
          "maxAreaM2": {
            "title": "Max area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings with at most this many square meters, for example 5000."
          },
          "startUrls": {
            "title": "Cushman & Wakefield links",
            "type": "array",
            "description": "One link per line: listing, search, city office or /insights/ report pages. English pages only. Example: https://www.cushmanwakefield.com/en/united-states/properties/lease/search/office",
            "items": {
              "type": "string"
            }
          },
          "reportType": {
            "title": "Report type",
            "enum": [
              "any",
              "marketbeat"
            ],
            "type": "string",
            "description": "All insights, or only the quarterly MarketBeat reports.",
            "default": "any"
          },
          "modifiedSince": {
            "title": "Changed since (YYYY-MM-DD)",
            "type": "string",
            "description": "Only pages changed on or after this date, for example 2026-10-01. Empty means no date limit.",
            "default": ""
          },
          "fetchDetails": {
            "title": "Open every listing page (slower)",
            "type": "boolean",
            "description": "On: full description, photos, available spaces, amenities, brochures and exact size and price. Costs one extra page read per listing. Off: one fast row per listing with address-level facts.",
            "default": true
          },
          "includeContactDetails": {
            "title": "Include broker names and phones",
            "type": "boolean",
            "description": "Adds the brokers on each listing (name, title, office, business phone) and report authors. These are individuals, so it is off by default.",
            "default": false
          },
          "includeRaw": {
            "title": "Include raw site data",
            "type": "boolean",
            "description": "Adds the unprocessed detail fields of the page that have no column of their own. For power users.",
            "default": false
          },
          "onlyNew": {
            "title": "Only results not seen before",
            "type": "boolean",
            "description": "Skips rows delivered by an earlier run of the same search. A listing the site changed since is delivered again. Memory is stored in your own Apify account.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "One name per saved search, for example us-office-denver. Empty derives one from your search.",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget seen results before this run",
            "type": "boolean",
            "description": "Clears the memory so everything counts as new.",
            "default": false
          },
          "maxScan": {
            "title": "Max pages to open (safety limit)",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Stops the run after this many pages whatever the number of items. Raise it for deep scans with strict area filters.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Parallel requests (1-4)",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Pages opened in parallel. All requests share one pace of about two per second to respect the site, so this only hides waiting time (the site answers in 2 to 8 seconds).",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy (optional)",
            "type": "object",
            "description": "Optional. Empty means direct requests, which work. If the site keeps refusing a connection, the actor switches to the Apify datacenter proxy on its own."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}