{
  "openapi": "3.0.1",
  "info": {
    "title": "Socrata / Chicago Building Permits",
    "description": "Scrape data from any Socrata (SODA) open data portal, including Chicago Building Permits. Supports custom datasets, SoQL filters, pagination, sorting, and column selection. Export raw records to the Apify dataset, making it ideal for building permits, inspections, and 311 requests.",
    "version": "0.0",
    "x-build-id": "DpuTvY9iyhEY2SWzg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/moving_beacon-owner1~socrata-chicago-building-permits/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-moving_beacon-owner1-socrata-chicago-building-permits",
        "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/moving_beacon-owner1~socrata-chicago-building-permits/runs": {
      "post": {
        "operationId": "runs-sync-moving_beacon-owner1-socrata-chicago-building-permits",
        "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/moving_beacon-owner1~socrata-chicago-building-permits/run-sync": {
      "post": {
        "operationId": "run-sync-moving_beacon-owner1-socrata-chicago-building-permits",
        "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",
        "required": [
          "domain",
          "dataset"
        ],
        "properties": {
          "domain": {
            "title": "Socrata domain",
            "type": "string",
            "description": "Any Socrata portal host. Default is the Chicago data portal.",
            "default": "data.cityofchicago.org"
          },
          "dataset": {
            "title": "Dataset id",
            "type": "string",
            "description": "Socrata dataset (4x4) id. Default ydr8-5enu = Chicago building permits.",
            "default": "ydr8-5enu"
          },
          "permitType": {
            "title": "Permit type (Chicago permits only)",
            "enum": [
              "",
              "PERMIT - SIGNS",
              "PERMIT - RENOVATION/ALTERATION",
              "PERMIT - NEW CONSTRUCTION",
              "PERMIT - ELECTRIC WIRING",
              "PERMIT - ELEVATOR EQUIPMENT",
              "PERMIT - WRECKING/DEMOLITION",
              "PERMIT - EASY PERMIT PROCESS",
              "PERMIT - PORCH CONSTRUCTION",
              "PERMIT - SCAFFOLDING"
            ],
            "type": "string",
            "description": "Convenience filter on the permit_type column (only valid for the Chicago building-permits dataset). 'Any' = no filter.",
            "default": ""
          },
          "where": {
            "title": "Advanced SoQL WHERE (overrides permit type)",
            "type": "string",
            "description": "Raw Socrata $where clause, e.g. \"issue_date > '2024-01-01' AND permit_type='PERMIT - SIGNS'\". If set, it overrides the permit type filter."
          },
          "select": {
            "title": "Columns ($select)",
            "type": "string",
            "description": "Comma-separated columns (blank = all). e.g. permit_,permit_type,issue_date,street_number,street_name,reported_cost"
          },
          "order": {
            "title": "Order ($order)",
            "type": "string",
            "description": "Socrata $order clause. Default issue_date DESC (a building-permits column).",
            "default": "issue_date DESC"
          },
          "pageSize": {
            "title": "Page size",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Rows per Socrata request (max 50000; 1000 is a safe default).",
            "default": 1000
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Total rows to fetch across pages (0 = all available).",
            "default": 1000
          },
          "startOffset": {
            "title": "Start offset",
            "minimum": 0,
            "type": "integer",
            "description": "Row offset to start from (for resuming).",
            "default": 0
          },
          "appToken": {
            "title": "Socrata app token",
            "type": "string",
            "description": "Optional free Socrata app token. Raises your rate limit for large pulls."
          },
          "impersonate": {
            "title": "Browser fingerprint",
            "type": "string",
            "description": "curl_cffi impersonate target. chrome is fine for Socrata.",
            "default": "chrome"
          },
          "minInterval": {
            "title": "Min seconds between requests",
            "minimum": 0,
            "type": "integer",
            "description": "Rate limit: minimum delay between page requests.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Usually NOT needed for this open API. Leave proxy off unless rate-limited.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}