{
  "openapi": "3.0.1",
  "info": {
    "title": "US Building Permits Scraper — Official City Data",
    "description": "Fresh building permits from 38 official US city open-data sources, normalized into one schema. Contractor leads for roofing, solar, HVAC & more. Filter by trade, date, valuation. Pay per record.",
    "version": "1.0",
    "x-build-id": "NknYka3VxF9cpgRIP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~us-building-permits-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-us-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/automation_craft~us-building-permits-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-us-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/automation_craft~us-building-permits-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-us-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": {
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Which covered jurisdictions to pull permits from. Use [\"all\"] for every covered source. Leave empty for a quick Chicago sample (last 7 days).",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "atlanta",
                "austin",
                "arlington-tx",
                "baltimore",
                "baton-rouge",
                "boston",
                "chicago",
                "cincinnati",
                "cleveland",
                "columbus",
                "denver",
                "detroit",
                "las-vegas",
                "los-angeles",
                "louisville",
                "maricopa-county",
                "marin-county",
                "memphis",
                "mesa",
                "miami",
                "miami-dade",
                "minneapolis",
                "montgomery-county",
                "nashville",
                "new-jersey",
                "new-orleans",
                "new-york",
                "philadelphia",
                "pittsburgh",
                "raleigh",
                "sacramento",
                "san-antonio",
                "san-diego",
                "san-francisco",
                "seattle",
                "tempe",
                "tucson",
                "washington-dc"
              ],
              "enumTitles": [
                "ALL covered sources",
                "Atlanta, GA",
                "Austin, TX",
                "Arlington, TX",
                "Baltimore, MD",
                "Baton Rouge, LA",
                "Boston, MA",
                "Chicago, IL",
                "Cincinnati, OH",
                "Cleveland, OH",
                "Columbus, OH",
                "Denver, CO",
                "Detroit, MI",
                "Las Vegas, NV",
                "Los Angeles, CA",
                "Louisville, KY",
                "Maricopa County, AZ",
                "Marin County, CA",
                "Memphis, TN",
                "Mesa, AZ",
                "Miami, FL (city)",
                "Miami-Dade County, FL",
                "Minneapolis, MN",
                "Montgomery County, MD",
                "Nashville, TN",
                "New Jersey (statewide)",
                "New Orleans, LA",
                "New York City, NY",
                "Philadelphia, PA",
                "Pittsburgh, PA",
                "Raleigh, NC",
                "Sacramento, CA",
                "San Antonio, TX",
                "San Diego, CA",
                "San Francisco, CA",
                "Seattle, WA",
                "Tempe, AZ",
                "Tucson, AZ",
                "Washington, DC"
              ]
            }
          },
          "issuedAfter": {
            "title": "Issued after (YYYY-MM-DD)",
            "type": "string",
            "description": "Only permits issued on/after this date. Defaults to the last 14 days (7 days when no cities are selected)."
          },
          "issuedBefore": {
            "title": "Issued before (YYYY-MM-DD)",
            "type": "string",
            "description": "Only permits issued on/before this date. Optional."
          },
          "trades": {
            "title": "Trades filter",
            "type": "array",
            "description": "Keep only permits classified into these trades (classified from permit type + work description). Leave empty for all trades.",
            "items": {
              "type": "string",
              "enum": [
                "building",
                "roofing",
                "solar",
                "electrical",
                "plumbing",
                "mechanical",
                "demolition",
                "pool",
                "fence",
                "sign",
                "fire",
                "grading",
                "other"
              ],
              "enumTitles": [
                "Building / general construction",
                "Roofing",
                "Solar / PV",
                "Electrical",
                "Plumbing",
                "Mechanical / HVAC",
                "Demolition",
                "Pool / spa",
                "Fence",
                "Sign / awning",
                "Fire protection",
                "Grading / excavation",
                "Other / unclassified"
              ]
            }
          },
          "minValuation": {
            "title": "Minimum project valuation (USD)",
            "type": "integer",
            "description": "Keep only permits with declared valuation/cost at or above this amount. Sources that do not publish valuation are excluded when this is set."
          },
          "searchText": {
            "title": "Search text",
            "type": "string",
            "description": "Keep only permits whose type, description, address, or contractor contains this text (case-insensitive)."
          },
          "maxRecordsPerCity": {
            "title": "Max records per city",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Cap on charged permit records per selected city."
          },
          "maxRecordsTotal": {
            "title": "Max records total",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Overall cap on charged permit records for the run."
          },
          "includeRaw": {
            "title": "Include raw source record",
            "type": "boolean",
            "description": "Attach the original source record under `raw` on every item (bigger items, same price)."
          },
          "socrataAppToken": {
            "title": "Socrata app token (optional)",
            "type": "string",
            "description": "Optional free Socrata app token; lifts anonymous throttling on Socrata-backed cities for very large pulls. Not required."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}