{
  "openapi": "3.0.1",
  "info": {
    "title": "Chicago Building Permits Scraper (Contractors, Owners)",
    "description": "Scrape City of Chicago building permits for construction leads. Extract address, permit type, work description, issue dates, reported cost, total fees, and owner and contractor contacts. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "kvg1QLXmF6QEV1brd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~chicago-building-permits-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-chicago-building-permits-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/scrapers_lat~chicago-building-permits-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-chicago-building-permits-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/scrapers_lat~chicago-building-permits-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-chicago-building-permits-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": {
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of permit records to collect. Optional. Results are returned newest issued first."
          },
          "query": {
            "title": "Search",
            "type": "string",
            "description": "Free text search across the whole permit record, including the work description and every owner and contractor contact name. For example ROOF, ADDITION, or a company name."
          },
          "permitType": {
            "title": "Permit Type",
            "enum": [
              "",
              "PERMIT – EXPRESS PERMIT PROGRAM",
              "PERMIT - EASY PERMIT PROCESS",
              "PERMIT - RENOVATION/ALTERATION",
              "PERMIT - NEW CONSTRUCTION",
              "PERMIT - SIGNS",
              "PERMIT - ELEVATOR EQUIPMENT",
              "PERMIT - WRECKING/DEMOLITION",
              "PERMIT - SCAFFOLDING",
              "PERMIT - PORCH CONSTRUCTION",
              "PERMIT - REINSTATE REVOKED PMT",
              "PERMIT - FOR EXTENSION OF PMT"
            ],
            "type": "string",
            "description": "Restrict to one permit type. Leave as Any to include all types.",
            "default": ""
          },
          "workType": {
            "title": "Work Type",
            "type": "string",
            "description": "Match the work type, for example ELECTRIC, PLUMBING, ROOF, or NEW CONSTRUCTION. Case-insensitive, matches anywhere in the field."
          },
          "minCost": {
            "title": "Minimum Reported Cost",
            "minimum": 0,
            "type": "integer",
            "description": "Only permits with a reported construction cost of at least this many US dollars. Useful for filtering to larger, higher-value projects."
          },
          "issuedFrom": {
            "title": "Issued From",
            "type": "string",
            "description": "Only permits issued on or after this date. Format YYYY-MM-DD, for example 2026-01-01."
          },
          "issuedTo": {
            "title": "Issued To",
            "type": "string",
            "description": "Only permits issued on or before this date. Format YYYY-MM-DD, for example 2026-06-30."
          },
          "ward": {
            "title": "Ward",
            "type": "string",
            "description": "Restrict to a single Chicago ward number, for example 43."
          },
          "communityArea": {
            "title": "Community Area",
            "type": "string",
            "description": "Restrict to a single Chicago community area number (1 to 77), for example 6 for Lake View."
          },
          "street": {
            "title": "Street Name",
            "type": "string",
            "description": "Match permits on a street name, for example HALSTED or MICHIGAN. Do not include the direction or number."
          },
          "ownerName": {
            "title": "Owner Name",
            "type": "string",
            "description": "Match the property owner name on the permit, for example a person or a company name."
          },
          "contractorName": {
            "title": "Contractor Name",
            "type": "string",
            "description": "Match any contractor company on the permit, including general, electrical, plumbing and other contractors."
          },
          "appToken": {
            "title": "Socrata App Token",
            "type": "string",
            "description": "Optional. The Chicago open data source is keyless, but a free app token raises the rate limit for very large pulls. Leave empty unless you have one."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}