{
  "openapi": "3.0.1",
  "info": {
    "title": "Building Permit Leads Scraper - Contractor Phone & Email",
    "description": "Turn building permits into scored contractor leads. Owner + contractor name, phone, email & license across 60+ US cities (any city via auto-discovery). HOT/WARM/COLD lead scoring, new-leads-only incremental mode, dedupe.",
    "version": "2.0",
    "x-build-id": "QWKhkitguwHek1sed"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/intelscrape~building-permit-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-intelscrape-building-permit-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/intelscrape~building-permit-scraper/runs": {
      "post": {
        "operationId": "runs-sync-intelscrape-building-permit-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/intelscrape~building-permit-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-intelscrape-building-permit-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": {
          "city": {
            "title": "City",
            "type": "string",
            "description": "Enter a US city name (e.g., Dallas, Chicago, Miami). Leave empty to search entire state or nationwide."
          },
          "extractTop100": {
            "title": "Extract Top-100 USA Cities (Mass Execution)",
            "type": "boolean",
            "description": "Bypass manual search and autonomously scan all 100 largest municipal databases sequentially using the Universal Discovery Core.",
            "default": false
          },
          "extractStateMatrix": {
            "title": "National Scan (2,500 Cities)",
            "type": "boolean",
            "description": "Execute sequentially across all 50 US States autonomously extracting Socrata instances and injecting Walled-Garden targets. Extremely intensive.",
            "default": false
          },
          "state": {
            "title": "State",
            "enum": [
              "All States",
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY"
            ],
            "type": "string",
            "description": "Select a US State. Highly recommended for finding smaller cities.",
            "default": "All States"
          },
          "permitType": {
            "title": "Permit type",
            "enum": [
              "All Types",
              "New Construction",
              "Renovation / Remodel",
              "Demolition",
              "Roofing",
              "Solar / Photovoltaic",
              "Electrical",
              "Plumbing",
              "HVAC / Mechanical",
              "Fire Protection",
              "Addition / ADU",
              "Commercial",
              "Sign"
            ],
            "type": "string",
            "description": "What kind of permits are you looking for?",
            "default": "All Types"
          },
          "timePeriod": {
            "title": "Time period",
            "enum": [
              "Last 7 days",
              "Last 30 days",
              "Last 90 days",
              "Last 6 months",
              "Last year",
              "Last 2 years",
              "All time"
            ],
            "type": "string",
            "description": "How far back do you want to search?",
            "default": "Last 30 days"
          },
          "minCost": {
            "title": "Minimum project cost ($)",
            "minimum": 0,
            "type": "integer",
            "description": "Only show permits with estimated cost above this amount."
          },
          "maxResults": {
            "title": "How many results",
            "minimum": 10,
            "maximum": 50000,
            "type": "integer",
            "description": "Maximum number of permit records to return.",
            "default": 100
          },
          "addressFilter": {
            "title": "Street name filter",
            "type": "string",
            "description": "Filter by street name (e.g., Broadway, Main St)."
          },
          "incrementalMode": {
            "title": "Incremental Mode (New Permits Only)",
            "type": "boolean",
            "description": "If enabled, the scraper remembers past runs and only returns newly discovered permits.",
            "default": false
          },
          "enrichContractors": {
            "title": "Enrich Contractor Contacts (Skip Trace PRO)",
            "type": "boolean",
            "description": "Automatically find contractor phone, email, and website by searching the web for their business. Falls back to Skip Trace PRO for personal name lookups. Adds additional PPE charges.",
            "default": false
          },
          "webhookUrl": {
            "title": "Webhook URL (Make.com / Zapier)",
            "type": "string",
            "description": "Optional webhook URL to POST results to when the run completes."
          },
          "maxCities": {
            "title": "Max cities to scan (advanced)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "When searching all cities: how many city portals to query.",
            "default": 50
          },
          "maxPerCity": {
            "title": "Max results per city (advanced)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum records to fetch from each city portal.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}